2011-10-26 17 views
5

私は自分のAndroidアプリケーションでボタンをプログラムで作成しようとしていますが、これはsqliteデータベースのアイテム数によって異なります。ボタンはありますが、ユーザーのボタンをクリックしたときに別のコンテンツを表示したいので、すべてのボタンにonClickを設定するのが私の問題です。私は今のところ、このコードを使用しています:Androidでボタンをプログラムで作成する

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

       } 
      } 
} 

しかし、問題は、私はそれだけで最後titleButtonを見せてボタンをクリックしたときにということです。実際には私はtitleButtonを表示する必要はありません、私はちょうどテスト目的のためにそれをしました。任意のアイデアをどのように私はボタンごとに異なるonClickメソッドを作成できますか?

答えて

6

私はこの問題は、このコード行であると思う:

btn = new Button(this); 

あなたのループ内で何度も何度も同じボタンを編集しacutally新しいものを作成していません。あなたがこれを行う必要があります新しいものを作成するには:

Button new_btn = new Button(this); 

をこれは、ブランドの新しいものにあなたがあなたのforループを反復するたびに作成されます。

+1

これは正しい答えです!これは本当にありがとう!私はいつも同じボタンを使って作業していることに気付きませんでした。 –

+0

問題ありません。私は喜んでお手伝いします。 – NotACleverMan

+1

彼は "new"で新しいインスタンスを作成するので問題はありません。 –

関連する問題