2011-10-26 30 views
5

Tôi đang cố gắng tạo các nút theo chương trình trên ứng dụng Android của mình tùy thuộc vào số lượng mục tôi có trên cơ sở dữ liệu sqlite của mình. Các nút ở đó, nhưng vấn đề của tôi là đặt onClick trên mỗi nút vì tôi muốn hiển thị nội dung khác nhau khi người dùng nhấp vào các nút. Tôi đang sử dụng mã này ngay bây giờ:Nút tạo Android lập trình phát hành

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

       } 
      } 
} 

Nhưng vấn đề là khi tôi nhấp vào nút, nó chỉ hiển thị titleButton cuối cùng. Trên thực tế, tôi không cần hiển thị titleButton, tôi đã thực hiện nó cho mục đích thử nghiệm. Bất kỳ ý tưởng nào tôi có thể tạo các phương thức onClick khác nhau cho mỗi nút đơn lẻ?

Trả lời

6

Tôi nghĩ vấn đề nằm với dòng mã này:

btn = new Button(this); 

Bạn đang chỉnh sửa cùng một nút hơn và hơn nữa trong vòng lặp của bạn và không acutally tạo một hình mới. Để tạo một tài khoản mới, bạn cần thực hiện việc này:

Button new_btn = new Button(this); 

Điều này sẽ tạo một thương hiệu mới mỗi khi bạn lặp lại vòng lặp của bạn.

+1

Đó là câu trả lời đúng! Cảm ơn rất nhiều vì chuyện này! Tôi đã không nhận ra rằng tôi đang làm việc với các nút cùng một lúc. –

+0

Không sao cả. Tôi rất vui được giúp đỡ. – NotACleverMan

+1

Anh ấy tạo một phiên bản mới với "mới" nên đó không phải là vấn đề. –

Các vấn đề liên quan