2013-03-25 105 views
0

我使用ListActivityAdapter創建了一個列表視圖,我想要做的是添加按鈕。按鈕的數量是動態的,實際上在上一個活動中用戶可以設置要添加的按鈕的數量。所以我不能使用佈局。要創造我的ListView下面的代碼如何將按鈕添加到列表視圖?

public class AppList extends ListActivity { 

    private String[] mStrings = (String[]) GridViewAppInfoAdapter.lApplication 
      .toArray(new String[GridViewAppInfoAdapter.lApplication.size()]); 

    public void setApplication() { 
     for (int i = 0; i < GridViewAppInfoAdapter.lApplication.size(); i++) { 
      mStrings[i] = GridViewAppInfoAdapter.lApplication.get(i).toString(); 

     } 

    } 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Log.d("toto", "la valeur de app" + GridViewAppInfoAdapter.lApplication); 
     //setContentView(R.layout.listview); 
     // setApplication(); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_multiple_choice, mStrings); 

     setListAdapter(adapter); 
     ListView listView = getListView(); 
      listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    } 

} 
+0

使用自定義適配器 – Raghunandan 2013-03-25 08:51:45

+0

我會張貼代碼您的問題..檢查出來,並嘗試一下 – user1835052 2013-03-25 09:04:29

回答

0

製作使用自定義適配器,並給出那裏你可以在佈局中輕鬆添加的按鈕。你也可以參考這個教程。

Tutorial

+0

謝謝你,我會嘗試這一點。 – diez 2013-03-25 09:01:39

0

使用自定義適配器在Android的

main.xml中動態地設置按鈕,將所有的列表值

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
    android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 


      <ListView android:layout_height="wrap_content" 
          android:layout_below="@+id/EditText01" 
    android:layout_width="wrap_content" 
          android:id="@+id/ListView01"> 
    </ListView> 

    </RelativeLayout> 

listview.xml //自定義佈局動態地添加按鈕和文本到ListView

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_height="wrap_content" 
     android:gravity="left|center" 
      android:layout_width="fill_parent" 
     android:paddingBottom="5px" 
      android:background="#fff200" 
      android:paddingTop="5px" 
     android:paddingLeft="5px"> 

      <Button android:id="@+id/Button01" 
          android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
      </ImageView> 

       <TextView android:id="@+id/TextView01" 
          android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
          android:textSize="20px" 
          android:textStyle="bold" 
          android:layout_marginLeft="10px" 
      android:textColor="#0099CC"> 
      </TextView> 

      </LinearLayout> 

MainActivity.java

 public class CustomListViewSearchOnButtonClick extends Activity 
     { 
      EditText edittext; 
      ListView listview; 
      Button search; 

      String[] text = { "One", "Two", "Three", "Four", "Five", "Six", "Seven", 
                  "Eight", "Nine", "Ten" }; 


      int textlength = 0; 
      ArrayList<String> text_sort = new ArrayList<String>(); 


      public void onCreate(Bundle savedInstanceState) 
     { 

          super.onCreate(savedInstanceState); 
          setContentView(R.layout.main); 


          listview = (ListView) findViewById(R.id.ListView01); 
          listview.setAdapter(new MyCustomAdapter(text, image)); 




     listview.setAdapter(new MyCustomAdapter(text_sort)); 

              } 

          }); 

      } 

MyCustomAdapter.java

   class MyCustomAdapter extends BaseAdapter 
     { 

          String[] data_text; 


          MyCustomAdapter() 
        { 

          } 

          MyCustomAdapter(String[] text) 
          { 
              data_text = text; 

          } 

               MyCustomAdapter(ArrayList<String>text, 
     ArrayList<Integer>image) 
       { 
              data_text = new String[text.size()]; 


              for (int i = 0; i < text.size(); i++) { 
                  data_text[i] = text.get(i); 

              } 

          } 

          public int getCount() 
     { 
              return data_text.length; 
          } 

          public String getItem(int position) 
      { 
              return null; 
          } 

          public long getItemId(int position) 
      { 
              return position; 
          } 

          public View getView(int position, View convertView, ViewGroup parent) 
     { 

              LayoutInflater inflater = getLayoutInflater(); 
              View row; 

              row = inflater.inflate(R.layout.listview, parent, false); 

              TextView textview = (TextView) row.findViewById(R.id.TextView01); 
              Button button= (ImageView) row 
                      .findViewById(R.id.Button01); 

              textview.setText(data_text[position]); 
              imageview.setImageResource(data_image[position]); 

              return (row); 

          } 
      } 
     } 
+0

你有沒有試過我的代碼? – user1835052 2013-03-25 11:06:39

相關問題