2012-04-27 2 views
0

Я новичок в android.Я разрабатываю приложение, в котором у меня есть две кнопки в 1 экране. Мне нужно выполнить различные действия на основе конкретной нажатой кнопки. Я должен различать, по какой кнопке щелчок.Разделение кнопок в 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

, что вы хотите, чтобы я сделал? PLS может быть более описательным? – vnshetty

+0

Привет vnshetty Моя проблема в приведенном выше коде «ShowSelectedNumber» в том, что есть две строки, которые предназначены для вызова, и это для sms.I нужно различать эти два раздела. Но у меня есть только 2 кнопки ничего, кроме else.So, как я могу отличить это, нажав эту кнопку. – subburaj

+0

вы можете написать другой метод для вызова и смс нет? в чем проблема в этом и реализовать прослушиватель кликов, ссылаясь на любой ответ ниже .. – vnshetty

ответ

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

не забудьте установить слушатели на двух кнопках, установите его на объект, который имеет вышеуказанный метод. Я часто делаю это на методе OnCreate

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

использовать идентификатор кнопки так же, как

R.id.button1 
R.id.button2 

в

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

и в вашем Митосе использовать

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(); 
     } 
    }); 
Смежные вопросы