2013-07-07 171 views
0

我發現了我的按鈕被按下用於檢測的以下解決方案:安卓:哪個按鈕被按下

public void onClick(View v) { 
    switch(v.getId()) 
    { 
    case R.id.bteins: 
    Toast t = Toast.makeText(this, "bzeins", Toast.LENGTH_SHORT); 
    t.show(); 
    break; 
    case R.id.btzwei: 
    // handle button B click; 
    break; 
    case R.id.btdrei: 
     Toast t1 = Toast.makeText(this, "btdfrei", Toast.LENGTH_SHORT); 
     t1.show(); 
    break; 
    case R.id.btvier: 
    // handle button B click; 
    break; 
    default: 
    throw new RuntimeException("Unknow button ID"); 
    } 
    } 

我的問題是,當我按下bteinsbtdrei沒有任何反應。我的錯誤是什麼?

+0

您需要在此發佈更多代碼,以便更輕鬆地回答您的問題。錯誤可能出現在向按鈕添加「OnClickListener」的代碼中,或者按鈕ID可能拼寫錯誤等等。一般來說,最好在發佈問題前先進行調查並使用調試器檢查程序以SO –

+0

請顯示您的活動代碼,完整,所以我們可以幫助您以更好的方式和儘可能快。 –

回答

0

您是否已將OnClickListener設置爲按鈕?我想你沒有。

1

可以實現onClick像這樣每個按鈕:

findViewById(R.id.bteins).setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      //do some things! 
     } 
    }); 
    findViewById(R.id.btzwei).setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      //do some things! 
     } 
    }); 
.... 

或實施活動OnClickListener並設置所有按鈕點擊到:

public class Test extends Activity implements OnClickListener 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 

     findViewById(R.id.bteins).setOnClickListener(this); 
     findViewById(R.id.btzwei).setOnClickListener(this); 
     findViewById(R.id.btdrei).setOnClickListener(this); 
     findViewById(R.id.btvier).setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) 
    { 
     switch(v.getId()) 
      { 
      case R.id.bteins: 
       Toast t = Toast.makeText(this, "bzeins", Toast.LENGTH_SHORT); 
       t.show(); 
       break; 
      case R.id.btzwei: 
       // handle button B click; 
       break; 
      case R.id.btdrei: 
        Toast t1 = Toast.makeText(this, "btdfrei", Toast.LENGTH_SHORT); 
        t1.show(); 
       break; 
      case R.id.btvier: 
       // handle button B click; 
       break; 
      default: 
       throw new RuntimeException("Unknow button ID"); 
      } 
    } 
} 
0
public class theexample extends Activity implements OnClickListener 

//OnCreateEvent 
bteins.setOnClickListener(this); 
btvier.setOnClickListener(this); 

public void OnClick(View v){ 
switch(v.getId()){ 
      case R.id.bteins: 
       Toast.makeText(this, "bzeins", Toast.LENGTH_SHORT).show(); 
       t.show(); 
       break; 
      case R.id.btzwei: 
       // handle button B click; 
       break; 
      case R.id.btdrei: 
        Toast.makeText(this, "btdfrei", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.btvier: 
       // handle button B click; 
       break; 
      default: 
       throw new RuntimeException("Unknow button ID"); 
      } 
    } 
0

您需要觸發連接他們各自的處理器與setOnClickListener()

這個方法要麼得到this作爲參數,並且比你的活動已實現OnClickListener(Eclipse可以幫助你自動重構輕易這些東西。)

或者,只是把它傳遞一個新的OnClickListener當場:

Button myButton = (Button) findViewById(*buttons id*); 
myButton.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
     //You can check v attributes to see what was clicked as well. 
    } 
});