2013-08-04 34 views
0

好吧,所以我看了一下,並嘗試瞭解我發現的其他一些代碼,但沒有爲我工作。我試圖讓用戶點擊textview並將它們帶到他們的電話撥號器。電話點擊的文本視圖

這裏是在Java:

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); 
     } 
}); 
} 
} 

我也把機器人:點擊= true,所以我不認爲如果是這樣的問題。任何幫助,將不勝感激!

+0

是否有出現的任何錯誤? – JoxTraex

+0

它在(「tel:+」+ phone.getText()中的「phone」下面顯示了一個紅色下劃線。沒有任何錯誤,但是爲了使該行消失,我需要做些什麼?我試着把 – Kodi

+0

聽起來像是一個編譯錯誤,然後嘗試閱讀錯誤 – JoxTraex

回答

1

,因爲如果你打算要使用匿名對象內的類方法級對象,該對象必須定義爲final。

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

,併爲進一步的措施,確保您使用的是做呼叫行動,您的清單正確的權限:

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

你的方法工作!我最初把TextView作爲最終的,但我不認爲這是正確的。不知道有關許可,所以這總是一個加號!非常感謝! – Kodi

2

變化phone.getText().toString().trim()使用供給的onclick方法View對象:

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_DIAL而不是Intent.ACTION_CALL將顯示撥號程序。您使用的是實際上將啓動電話,使這項工作的Intent.ACTION_CALL,則需要相應的權限添加到您的清單:根據您的描述它的紅色

<uses-permission android:name="android.permission.CALL_PHONE" /> 
相關問題