如何从数组(android)获取按钮?

时间:2016-10-20 11:05:44

标签: android arrays

我需要帮助。 我在arrays.xml中有文本数组

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

 <resources>
     <string-array name="firstarray">
         <item value="0">firs titem</item>
         <item value="1">second item</item>
         <item value="2">third item</item>
         <item value="3">fourth item</item>
     </string-array>
 </resources>

在java文件中,我将此数组读入文件

  public class cat extends Activity {
      String [] listView;
      ArrayAdapter<String> adapter;

        @Override
      protected void onCreate(Bundle savedInstanceState) {

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

            listView = getResources().getStringArray(R.array.firstarray);

       } }

在XML中我有列表代码

 <ListView
         android:layout_width="wrap_content"
         android:layout_height="439dp"
         android:id="@+id/listView"
         android:entries="@array/firstarray"
         android:layout_alignParentTop="true"
         android:layout_alignParentLeft="true"
         android:layout_alignParentStart="true"
         style="@style/Widget.AppCompat.ListView"
         android:scrollbars="none" />

但今天我想输出一个按钮而不是一个列表。如何让它更容易?

2 个答案:

答案 0 :(得分:2)

您可以像这样创建按钮数组

Button[] buttons=new Button[5];
final LinearLayout linearLayout=(LinearLayout)findViewById(R.id.linearLayout);

for(int i=0;i<5;i++){
            Button button=new Button(this);
            button.setText(""+i);
            button.setOnClickListener(onclicklistener);
            linearLayout.addView(button);
        }

onclicklistener = new View.OnClickListener() {

            @Override
            public void onClick(View v) {
            }
});

答案 1 :(得分:0)

感谢您的帮助。我必须自动带上按钮。但是因为它们与数组 firstarray 相关联?要在新的Activity中传达press值,并将knock称为数组元素?

String[] mTestArray;
mTestArray = getResources().getStringArray(R.array.firstarray);
length =getResources().getStringArray(R.array.firstarray).length
Button[] buttons=new Button[length];
        final LinearLayout linearLayout=(LinearLayout)findViewById(R.id.buttonlayout);

        for(int i=0;i<length;i++){

            Button button=new Button(this);
            button.setId(i);
            final int id_ = button.getId();
            button.setText(mTestArray[id_]);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                    Toast.makeText(view.getContext(),
                            "Button clicked index = " + id_, Toast.LENGTH_SHORT)
                            .show();
                }
            });
            linearLayout.addView(button);
        }