使用数组中的项目显示菜单的最佳方法

时间:2013-12-18 00:05:25

标签: java android arrays menu onclicklistener

我正在创建一个Android应用程序,在所有代码之后,生病获取一个int数组。让我们假装它是3,5,24。 我有另外两个数组:array1和array2。我想知道显示这样一个菜单的最佳方式:


| array1 [3] array2 [3] |

| array1 [5] array2 [5] |

| array1 [24] array2 [24] |


我也需要每个项目都可点击。 我该怎么做?

另外,我需要更改背景和字母颜色。 感谢所有的帮助。

1 个答案:

答案 0 :(得分:0)

我为你创建了一个简单的ListView

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // create list1 and list2 here
        Integer[] list1 = new Integer[4];
        Integer[] list2 = new Integer[4];

        ListView view = (ListView)this.findViewById(R.id.root);
        view.setAdapter(new ListAdapter(this, list1, list2));
    }

    private static class ListAdapter extends ArrayAdapter<Integer>
    {
        public ListAdapter(MainActivity screen, Integer[] list1, Integer[] list2) 
        {
            super(screen, R.layout.listviewrow, list1);
            this.list1 = list1;
            this.list2 = list2;
            this.activity = screen; // << sorry I forgot this!
        }

        public View getView(int position, View row, ViewGroup parent) 
        {   
            row = activity.getLayoutInflater().inflate(R.layout.listviewrow, parent, false);

            TextView view1 = (TextView)row.findViewById(R.id.item1);
            view1.setText(list1[position] + "");
            TextView view2 = (TextView)row.findViewById(R.id.item2);
            view2.setText(list2[position] + "");

            return row;
        }

        private MainActivity activity;
        private Integer list1[];
        private Integer list2[];
    }
}

这是listviewrow.xml:

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

    <TextView 
        android:id="@+id/item1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".5"/>

    <TextView 
        android:id="@+id/item2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".5"/>
</LinearLayout>

最后是activity_main.xml:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

如果你想使用除了Integer以外的东西,你应该很容易弄明白。只需更改泛型并更改类型,您应该没问题。如果您需要更多帮助来解决这个问题,请告诉我。