2014-10-02 175 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 
}