Android 如何使用轻触列表项将值从一个活动传递到另一个活动

Android 如何使用轻触列表项将值从一个活动传递到另一个活动,android,listview,android-listview,adapter,baseadapter,Android,Listview,Android Listview,Adapter,Baseadapter,我正试图将ciicked listitem数据传递给另一个活动,但每当我点击任何列表项时,都无法获取Toast,也无法将所选列表项值传递给另一个活动 所以我想知道: 如何使用点击列表项将值从一个活动传递到另一个活动 第二 为什么不在Toast中显示点击列表项的位置 MainActivity.java: @Override protected void onPostExecute(Void args) { // Locate the listview in

我正试图将ciicked listitem数据传递给另一个活动,但每当我点击任何列表项时,都无法获取Toast,也无法将所选列表项值传递给另一个活动

所以我想知道:

如何使用点击列表项将值从一个活动传递到另一个活动

第二

为什么不在Toast中显示点击列表项的位置

MainActivity.java:

@Override
        protected void onPostExecute(Void args) {
            // Locate the listview in listview_main.xml
            listview = (ListView) findViewById(R.id.listview);
            // Pass the results into ListViewAdapter.java
            adapter = new ListViewAdapter(MainActivity.this, arraylist);
            // Set the adapter to the ListView
            listview.setAdapter(adapter);
            // Close the progressdialog
            mProgressDialog.dismiss();

            listview.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(MainActivity.this, SingleItemView.class);
                    // Pass all data rank
                    intent.putExtra("rank", arraylist.get(position).get(MainActivity.RANK));
                    // Start SingleItemView Class
                    startActivity(intent);
                }
            });         
        }
06-04 18:21:12.725: E/AndroidRuntime(19957): FATAL EXCEPTION: main
06-04 18:21:12.725: E/AndroidRuntime(19957): android.content.res.Resources$NotFoundException: String resource ID #0x0
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.content.res.Resources.getText(Resources.java:242)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.Toast.makeText(Toast.java:304)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at com.androidbegin.jsonparsetutorial.MainActivity$DownloadJSON$1.onItemClick(MainActivity.java:107)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AdapterView.performItemClick(AdapterView.java:301)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AbsListView.performItemClick(AbsListView.java:1280)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3071)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AbsListView$1.run(AbsListView.java:3972)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.os.Handler.handleCallback(Handler.java:615)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.os.Looper.loop(Looper.java:137)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.app.ActivityThread.main(ActivityThread.java:4921)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at java.lang.reflect.Method.invokeNative(Native Method)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at java.lang.reflect.Method.invoke(Method.java:511)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at dalvik.system.NativeStart.main(Native Method)

尝试使用setTag(Object)和getTag()方法。在ListView中表示行的每个视图上应用setTag()。然后,在onItemClick()方法中,使用作为参数传递的“view”变量,使用getTag()提取传递的值。您的解决方案看起来不错,但由于优化原因,建议使用标记将值传递给onclick。

尝试在onCreat而不是onPostExecute中写入以下行

listview = (ListView) findViewById(R.id.listview);

listview.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(MainActivity.this, SingleItemView.class);
                    // Pass all data rank
                    intent.putExtra("rank", arraylist.get(position).get(MainActivity.RANK));
                    // Start SingleItemView Class
                    startActivity(intent);
                }
            });    
listview=(listview)findViewById(R.id.listview);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Toast.makeText(MainActivity.this,position,Toast.LENGTH_LONG.show();
//TODO自动生成的方法存根
意向意向=新意向(MainActivity.this,SingleItemView.class);
//通过所有数据等级
intent.putExtra(“rank”,arraylist.get(position.get(MainActivity.rank));
//启动SingleItemView类
星触觉(意向);
}
});    
更改此选项

Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();


你的代码出了什么问题?我不知道,但每当我点击列表中的任何一项时,都没有得到我想要的@Raghunandan你可以记录
arraylist.get(position).get(MainActivity.RANK)
@Raghunandan的值吗?请检查我发布的代码!什么是第107行
MainActivity.java
Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, String.valueOf(position), Toast.LENGTH_LONG).show();