2013-08-04 5 views
0

알았어. 그래서 내가 찾은 다른 코드를 보았지만 아무 것도 나에게 도움이되지 못했다. 나는 사용자가 textview를 클릭하고 전화로 걸리게하려고 노력하고있다.전화를 클릭하여 textview를 클릭하십시오.

다음은 자바의 : 그게 문제가 있다면 그래서 내가 볼 수없는 클릭 = 사실 : 나는 또한 안드로이드를 넣었습니다

public class Info extends Activity { 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.moreinfo); 
    Button appoint =(Button) findViewById(R.id.btnAppoint); 
    TextView phone =(TextView) findViewById(R.id.phoneTxt); 
    String url = phone.getText().toString(); 
    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url)); 
    appoint.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(Info.this, EmailContact.class)); 
     } 
    }); 

    phone.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Intent callIntent = new Intent(Intent.ACTION_CALL); 
      callIntent.setData(Uri.parse("tel:+"+phone.getText().toString().trim())); 
      startActivity(callIntent); 
     } 
}); 
} 
} 

. 어떤 도움을 주시면 감사하겠습니다!

+0

있습니까? – JoxTraex

+0

("tel : +"+ phone.getText()에서 "phone"아래에 빨간색 밑줄이 표시됩니다. 오류는 없지만 그 행이 사라지기 위해 내가해야하는 것은 무엇입니까? 실제 전화 번호와 아무 것도 아니라 동일한 결과가있는 phoneTxt가 없습니다. – Kodi

+0

컴파일 오류가 발생하여 rrror를 읽으십시오. – JoxTraex

답변

1

을 바탕으로 : 당신이 전화 통화를 시작할 실제로 것이며, 그 일을하는 데 사용하는 Intent.ACTION_CALL, 당신은 매니페스트에 적절한 권한을 추가해야합니다 익명 객체 내에서 클래스 메서드 수준 객체를 사용하려면 객체를 final로 정의해야합니다.

final TextView phone =(TextView) findViewById(R.id.phoneTxt); 

그리고 더 측정을위한 , 당신이 당신의 매니페스트에 통화 조치를 할 수있는 권리 권한을 사용하고 있는지 확인 : 발생 된 오류가

<uses-permission android:name="android.permission.CALL_PHONE" /> 
+0

메서드가 작동했습니다. 처음에는 TextView를 final로 설정했으나 올바르지 않다고 생각했습니다. 허가에 대해서도 몰랐는데 항상 플러스입니다! 정말 고마워요! – Kodi

2

변경 phone.getText().toString().trim()는 온 클릭 방식에 공급되는 뷰 객체 사용하기 : 당신은 그냥로드 전화 번호로 전화 걸기를 표시 할 경우, 잘못된 의도 조치를 사용하고, 또한

phone.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 
    Intent callIntent = new Intent(Intent.ACTION_DIAL); 
    callIntent.setData(Uri.parse("tel:+"+((TextView)arg0).getText().toString().trim())); 
    startActivity(callIntent); 
} 
}); 

Intent.ACTION_DIALIntent.ACTION_CALL 대신 전화 걸기가 표시됩니다. 당신이가는 경우 때문에 붉은 당신의 설명에

<uses-permission android:name="android.permission.CALL_PHONE" /> 
관련 문제