Android编程按钮创建按钮

And*_*oid 5 android button

我试图在我的Android应用程序上以编程方式创建按钮,具体取决于我在sqlite数据库上有多少项目.按钮在那里,但我的问题是设置onClick每个按钮,因为我想在用户点击按钮时显示不同的内容.我现在正在使用此代码:

   for(cursorCol.move(0); cursorCol.moveToNext(); cursorCol.isAfterLast()){
          Id = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("id")));
          Log.i("Id","Id : "+Id);
                titleButton = cursorCol.getString(cursorCol.getColumnIndex("title"));
             Log.i("titleButton","titleButton : " + titleButton);
             elemOrder1 = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("elemOrder")));
               Log.i("elemOrder1 ","elemOrder1 : " + elemOrder1 );    

               btn = new Button(this); 
                  btn.setText("  " + titleButton + "  "); 
                  btn.setId(Id);
                  btn.setTextColor(Color.parseColor("#000000"));
                  btn.setTextSize(12);
                  btn.setPadding(10, 10, 10, 10);
                  btn.setBackgroundResource(R.drawable.gray_button);
                  btnlayout.addView(btn,params); 

                  btn.setOnClickListener(new View.OnClickListener() {

          @Override
          public void onClick(View v) {
           infoCard.removeAllViews();

           for(int i=0;i<=cursorCol.getCount();i++){

            Log.i("","titleButton : "+titleButton);

               }
          }
}
Run Code Online (Sandbox Code Playgroud)

但问题是当我点击按钮时它只显示最后一个titleButton.实际上我不需要展示titleButton,我只是为测试目的而做.任何想法如何onClick为每个按钮创建不同的方法?

Not*_*Man 6

我认为问题在于这行代码:

btn = new Button(this);
Run Code Online (Sandbox Code Playgroud)

您正在循环中反复编辑同一个按钮,而不是创建一个新按钮.要创建一个新的,您需要这样做:

Button new_btn = new Button(this);
Run Code Online (Sandbox Code Playgroud)

每次迭代for循环时,这将创建一个全新的.