Java 使用数组中的项目显示菜单的最佳方式
我正在创建一个Android应用程序,在完成所有代码后,我会得到一个int数组。让我们假设是3,5,24。 我还有另外两个数组:array1和array2。我想知道显示如下菜单的最佳方式:Java 使用数组中的项目显示菜单的最佳方式,java,android,arrays,menu,onclicklistener,Java,Android,Arrays,Menu,Onclicklistener,我正在创建一个Android应用程序,在完成所有代码后,我会得到一个int数组。让我们假设是3,5,24。 我还有另外两个数组:array1和array2。我想知道显示如下菜单的最佳方式: |阵列1[3]阵列2[3]| |阵列1[5]阵列2[5]| |阵列1[24]阵列2[24]| 我需要每个项目是可点击的,以及。 我该怎么做 另外,我需要改变背景和字母的颜色。 提前感谢您的帮助。我为您创建了一个简单的列表视图 import android.os.Bundle; import android
|阵列1[3]阵列2[3]| |阵列1[5]阵列2[5]| |阵列1[24]阵列2[24]|
我需要每个项目是可点击的,以及。 我该怎么做 另外,我需要改变背景和字母的颜色。
提前感谢您的帮助。我为您创建了一个简单的列表视图
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[];
}
}
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在此处创建列表1和列表2
整数[]列表1=新整数[4];
整数[]列表2=新整数[4];
ListView=(ListView)this.findViewById(R.id.root);
setAdapter(新的ListAdapter(this,list1,list2));
}
私有静态类ListAdapter扩展了ArrayAdapter
{
公共ListAdapter(MainActivity屏幕,整数[]列表1,整数[]列表2)
{
super(screen,R.layout.listviewrow,list1);
this.list1=list1;
this.list2=list2;
this.activity=screen;//你是说一个简单的ListView吗?谢谢你提供的信息,但我在这一行上得到了一个空指针:row=activity.getLayoutFlater().flate(R.layout.listviewrow,parent,false);我认为问题在于活动未初始化。我将尝试解决它,只是想留下信息。我将发布消息soon@PedroGodinho看到我的更新,我忘了在构造函数中分配屏幕引用,对不起!!!
<?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>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />