Android 动态创建按钮的OnClickListener

Android 动态创建按钮的OnClickListener,android,button,onclicklistener,Android,Button,Onclicklistener,我是android开发新手,希望你能帮助我。我动态创建了按钮(基于我数据库的内容)。我还为这些按钮制作了onclicklistener。现在的问题是,如果我点击按钮,什么都不会发生。logcat中也没有显示错误。你认为这是为什么?如有任何回复,将不胜感激 以下是我创建按钮的代码: final LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); c

我是android开发新手,希望你能帮助我。我动态创建了按钮(基于我数据库的内容)。我还为这些按钮制作了onclicklistener。现在的问题是,如果我点击按钮,什么都不会发生。logcat中也没有显示错误。你认为这是为什么?如有任何回复,将不胜感激

以下是我创建按钮的代码:

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

                }
            };
        }
改变


onClick
方法内部使用onClick方法的
View
参数从按下的按钮获取文本,如下所示:

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

OnClickListener
中设置断点或添加Log.d()调用,以查看是否正在调用它。非常感谢!这确实做到了。
String criteria = button.getText().toString().trim();
public void onClick(View v) {
    Button button = (Button)v;
    String selectedText = button.getText().toString();
    ....your code here
}