0

私はAndroidを初めて使用します。1つの画面に2つのボタンがあるアプリケーションを開発しています。クリックした特定のボタンに基づいて、さまざまなアクションを実行する必要があります。クリックしたボタンに応じて区別する必要があります。

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

5 に答える 5

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メソッドでこれを行います

    View smsButton = findViewById(R.id.smsButton);
    smsButton.setOnClickListener(this);
    View callButton = findViewById(R.id.callButton);
    callButton.setOnClickListener(this);
于 2012-04-27T06:10:13.013 に答える
0

ボタンのIDを次のように使用します

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

}
于 2012-04-27T06:10:32.200 に答える
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; 
  }
}

上記のコードは理解のためのものであり、実際のコードは異なる場合があります。

于 2012-04-27T06:06:43.063 に答える
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;
      }
}
}

于 2012-04-27T06:37:11.217 に答える
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();  
        }
    });
于 2012-04-27T06:54:44.333 に答える