2012-04-27 37 views
0

我是android.I的新手我正在開發一個應用程序,因爲我有兩個按鈕在1 screen.I必須執行不同的操作基於特定的按鈕clicked.I必須根據哪個按鈕進行區分被點擊。在android中的按鈕差異

public void showSelectedNumber(int type, String number) 
{ 


     --->Here i have to set two conditions: 
    1.This for call 
     try 
     { 
    //  Intent callIntent = new Intent(Intent.ACTION_CALL);  //Call options 
    //////  Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
    //////  while (cursor.moveToNext()) { 
    //////   String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
    //////  } 
    //  callIntent.setData(Uri.parse("tel:"+number));  
    //  startActivity(callIntent); 


    This is for SMS: 

     startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("sms:"       //sms options 
       + number))); 
     } 
     catch (ActivityNotFoundException e) 
     { 
     Log.e("helloandroid dialing example", "Call failed", e); 
     } 
     Toast.makeText(this, type + ": " + number, Toast.LENGTH_LONG).show();  
    } 
    } 
+0

你要我做什麼?請問可以更具描述性? – vnshetty 2012-04-27 06:05:17

+0

嗨vnshetty我的問題是在上面的代碼「ShowSelectedNumber」中有2行這是爲了調用,這是爲了短信。我必須區分這兩部分。但我只有2個按鈕沒有別的別的。我可以通過點擊按鈕來區分這一點。 – subburaj 2012-04-27 06:07:48

+0

你可以爲通話和短信編寫不同的方法嗎?這是什麼問題,並通過引用下面的任何答案來實現點擊監聽器。 – vnshetty 2012-04-27 06:14:00

回答

0

實現您的活動類onClickListener。然後用這兩個按鈕註冊吧..

buttonCall.setOnClickListener(this); 
buttonSMS.setOnClickListener(this); 

現在,onClick()方法

@Override 
public void onClick(View v) 
{ 
switch (v.getId()) 
    { 
    case R.id.buttonCall: // id of your call button 
    // Call button click.. 
    break; 

    case R.id.buttonSMS: // id of your SMS button 
    // SMS button click 
    break; 
    } 
} 

上面的代碼只是爲了理解,真正的代碼可能會有所不同..

0

我實現OnClickListener和在我的班級有類似的東西

@Override 
public void onClick(View v) { 
    if (v.getId() == R.id.smsButton) { 
     //call your send sms method 
    } 
    if (v.getId() == R.id.callButton) { 
     //use you call method 
    } 
} 

記得設置2個按鈕上的偵聽器,並將其設置爲具有上述方法的對象。我經常這樣做的onCreate方法按鈕就像

R.id.button1 
R.id.button2 

View smsButton = findViewById(R.id.smsButton); 
    smsButton.setOnClickListener(this); 
    View callButton = findViewById(R.id.callButton); 
    callButton.setOnClickListener(this); 
0

使用ID在

onClik(View v){ 
int id=v.getId(); 
showSelectedNumber(id,number); 
} 

,並在您methos使用

public void showSelectedNumber(int type,String num){ 
switch (type) 
    { 
    case R.id.buttonCall: // id of your call button 
    // Call button click.. 
    break; 

    case R.id.buttonSMS: // id of your SMS button 
    // SMS button click 
    break; 
    } 

} 
0

public class MyActivity extends Activity implements OnClickListener{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button smsButton = (Button)findViewById(R.id.smsButton); 
    smsButton.setOnClickListener(this); 
    Button callButton = (Button)findViewById(R.id.callButton); 
    callButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View view) 
{ 
    switch (view.getId()) 
    { 
     case R.id.buttonCall: // id of your call button 
       // Call button click code 
      break; 
     case R.id.buttonSMS:  // id of your SMS button 
       // SMS button click code 
      break; 
     } 
} 
} 

0
you can easily do it by fetching button id and the set on click listener to it. 

IN your on create write this. 

Button btn_sms = (Button)findViewById(R.id.button_sms); 
Button btn_call = (Button)findViewById(R.id.button_call); 

btn_sms..setOnClickListener(new View.OnClickListener() { 


      @Override 
      public void onClick(View v) { 
      Intent callIntent = new Intent(Intent.ACTION_CALL);  //Call options 
      Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
      while (cursor.moveToNext()) { 
       String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      } 
      callIntent.setData(Uri.parse("tel:"+number));  
      startActivity(callIntent); 

       } 
     }); 

btn_call.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("sms:" + number))); 
      } 
      catch (ActivityNotFoundException e) 
      { 
       Log.e("helloandroid dialing example", "Call failed", e); 
      } 
      Toast.makeText(this, type + ": " + number, Toast.LENGTH_LONG).show(); 
     } 
    });