Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否获取在ListActivity中单击的项目的信息?_Java_Android_Arrays - Fatal编程技术网

Java 是否获取在ListActivity中单击的项目的信息?

Java 是否获取在ListActivity中单击的项目的信息?,java,android,arrays,Java,Android,Arrays,我正在构建一个包含活动列表的ListActivity(列表中的每个项目都是我的应用程序的活动)。当列表中的一个项目被单击时,我想获取它的信息。基本上已经完成了,但是我在尝试检索onclick上的项数据时遇到了一个错误 这就是我正在做的: private class ActivityItem { private CharSequence title; private Class activityClass; // I didn't limit it to Activities be

我正在构建一个包含活动列表的ListActivity(列表中的每个项目都是我的应用程序的活动)。当列表中的一个项目被单击时,我想获取它的信息。基本上已经完成了,但是我在尝试检索onclick上的项数据时遇到了一个错误

这就是我正在做的:

private class ActivityItem {
    private CharSequence title;
    private Class activityClass; // I didn't limit it to Activities because I might use it for Fragments

    public ActivityItem(int titleResId, Class activityClass) {
        this.title = getResources().getString(titleResId);
        this.activityClass = activityClass;
    }

    @Override
    public String toString() {
        return title.toString();
    }
}

private static ActivityItem[] mItems;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_items_not_added);

    // Instantiate the list of samples.
    ActivityItem[] mItems = new ActivityItem[]{
            new ActivityItem(R.string.dialer, Example1.class),
            new ActivityItem(R.string.clock, Example2.class),
    };

    setListAdapter(new ArrayAdapter<ActivityItem>(this, android.R.layout.simple_list_item_1, android.R.id.text1, mItems));
}

@Override
protected void onListItemClick(ListView listView, View view, int position, long id) {
    Log.d("Title:", mItems[position].toString()); // This returns error
}

我做错了什么?

项在
onCreate()
中进行了附加的本地声明-您无法访问此实例。只用

mItems = new ActivityItem[]{
        new ActivityItem(R.string.dialer, Dialer.class),
        new ActivityItem(R.string.clock, Clock.class),
        new ActivityItem(R.string.flashlight, Flashlight.class),
        new ActivityItem(R.string.contact_list, ContactList.class),
};
onCreate()
中,将分配
静态活动项[]mItems
。否则它将为
null

p.s.正如我看到的那样,您使用的是
列表活动
。在这种情况下,您也可以在
onListItemClick
中调用
getListView().getAdapter()getItem(int位置)
。因此,不需要静态成员。检查API

mItems = new ActivityItem[]{
        new ActivityItem(R.string.dialer, Dialer.class),
        new ActivityItem(R.string.clock, Clock.class),
        new ActivityItem(R.string.flashlight, Flashlight.class),
        new ActivityItem(R.string.contact_list, ContactList.class),
};