从列表视图中单击项目时出错

Error when clicking item from listview

谁能告诉我为什么我无法通过选择,甚至无法从列表视图中选择一个项目。

 protected void onPostExecute(List<uploadedContentModels> result) {
        super.onPostExecute(result);
        dialog.dismiss();
        if (result != null) {
            VidAddressAdapter adapter = new VidAddressAdapter(getApplicationContext(), R.layout.rowv_vid, result);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    String choice = ((TextView)view).getText().toString();
                    Toast.makeText(getBaseContext(), choice, Toast.LENGTH_LONG).show();
 //                 Uri video = Uri.parse(clickedAddress);
 //                 videoView.setVideoURI(video);
 //                 videoView.start();
                }
            });

我得到的错误是;

  04-03 18:31:00.844 24899-24899/net.we4x4.we4x4 E/AndroidRuntime: FATAL EXCEPTION: main
                                                             Process: net.we4x4.we4x4, PID: 24899
                                                             java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
                                                                 at net.we4x4.we4x4.MyUploadedVideos$JsonTask.onItemClick(MyUploadedVideos.java:185)
                                                                 at android.widget.AdapterView.performItemClick(AdapterView.java:302)
                                                                 at android.widget.AbsListView.performItemClick(AbsListView.java:1196)
                                                                 at android.widget.AbsListView$PerformClick.run(AbsListView.java:3054)
                                                                 at android.widget.AbsListView.run(AbsListView.java:3812)
                                                                 at android.os.Handler.handleCallback(Handler.java:733)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                 at android.os.Looper.loop(Looper.java:136)
                                                                 at android.app.ActivityThread.main(ActivityThread.java:5584)
                                                                 at java.lang.reflect.Method.invokeNative(Native Method)
                                                                 at java.lang.reflect.Method.invoke(Method.java:515)
                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
                                                                 at dalvik.system.NativeStart.main(Native Method)

在主要 activity 中,我有一个由 JsonArray 填充的列表视图 - 视频剪辑地址,当其中一个被点击时,它应该被传递到 VideoView。我无法做到这一点,正如你看到的那样,我评论了那部分代码,因为我在尝试将地址解析为 uri 时遇到错误,当我尝试只选择 Toast 时,我也遇到了错误。 ?

您的错误显示:android.widget.LinearLayout cannot be cast to android.widget.TextView。这只是意味着您正在尝试转换两个不同的 类,您应该转换为正确的类型:((MyClass)view) 或按位置 result.get(position)
获取项目 result 是您的视频列表。

您的 listView 项似乎属于 LinearLayout 类型。在 onItemClickListener 中,view 参数表示您的列表项,因此您试图将 LinearLayout 转换为 TextView。也许你在 LinearLayout 里面有一个 TextView 所以要得到它你需要调用 findViewById.

使用这个

((TextView)((LinearLayout)view).findViewById(R.id.your_textview_id)).getText().toString();

而不是

((TextView)view).getText().toString();

TextView 获取文本。

这里的 getName() 是你的 PogoClass 项目名称 getter 和 setter,根据你的 getter setter 项目名称更改这个

String choice = result.get(position).getName();
Toast.makeText(getBaseContext(), choice, Toast.LENGTH_LONG).show();