2014-10-02 200 views
0

我是新來的android開發,我希望你能幫助我。我動態地創建按鈕(基於我的數據庫的內容)。我也爲這些按鈕做了onclicklistener。現在的問題是,如果我點擊按鈕,沒有任何反應。 logcat中也沒有顯示錯誤。你爲什麼認爲這發生了?任何迴應將不勝感激。OnClickListener動態創建按鈕

這是我在創建按鈕的代碼:

final LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
     cursorCol = scoresDataBaseAdapter.queueCrit(mRowId); 
     for(cursorCol.move(0); cursorCol.moveToNext(); cursorCol.isAfterLast()){ 
      int Id = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("_id"))); 
      Log.i("_id","_id : "+Id); 
       String CriteriaButton = cursorCol.getString(cursorCol.getColumnIndex("Criteria")); 
       Log.i("CriteriaButton","CriteriaButton : " + CriteriaButton); 


       Button btn = new Button(this); 
        btn.setText(" " + CriteriaButton + " "); 
        btn.setId(Id); 
        btn.setTextColor(Color.parseColor("#ffffff")); 
        btn.setTextSize(12); 
        btn.setPadding(10, 10, 10, 10); 
        btnlayout.addView(btn,params); 

        btn.setOnClickListener(getOnClickDoSomething(btn));} 
我的OnCreate後

現在,我有以下的方法來設置onclicklistener

View.OnClickListener getOnClickDoSomething(final Button button) { 
      return new View.OnClickListener() { 
       public void onClick(View v) { 

        String criteria = button.getText().toString(); 
        if ("Exams".equals(criteria)){ 
         Toast.makeText(getApplicationContext(),"Exams Selected",2).show(); } 

        else if ("Quizzes".equals(criteria)){ 
         Toast.makeText(getApplicationContext(),"Quizzes Selected",2).show(); } 

       } 
      }; 
     } 
+0

設置一個斷點或在'OnClickListener'添加Log.d()調用,看看它是否是被叫。 – 2014-10-02 03:27:54

回答

1

變化

String criteria = button.getText().toString(); 

String criteria = button.getText().toString().trim(); 
+0

非常感謝!這實際上做到了。 – DEADPOOL 2014-10-02 04:36:54

0

onClick方法使用View參數的onClick方法,從按下按鈕,讓文字:

public void onClick(View v) { 
    Button button = (Button)v; 
    String selectedText = button.getText().toString(); 
    ....your code here 
}