有人可以告诉我为什么在从列表视图中选择项目时我无法通过选择甚至是吐司。
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$1.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$3.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)
在主要活动中我有一个列表视图,由JsonArray填充 - 视频剪辑地址,当其中一个点击它时,它应传递给VideoView。我无法做到这一点,因为你可以看到我评论了部分代码,因为我在尝试将地址解析为uri时出错,而当我尝试只是Toast这个选择时我也得到了一个错误。 ?
答案 0 :(得分:1)
您的错误说:android.widget.LinearLayout cannot be cast to android.widget.TextView
。这只是意味着你试图投两个不同的类,你应该转换为正确的类型:((MyClass)view)
或按位置result.get(position)
获取项目
result
是您的视频列表。
答案 1 :(得分:1)
您的listView
项似乎属于LinearLayout
类型。在onItemClickListener
view
参数中,LinearLayout
参数代表您的列表项,因此您尝试将TextView
投射到TextView
。也许你在LinearLayout
里面有一个((TextView)((LinearLayout)view).findViewById(R.id.your_textview_id)).getText().toString();
所以为了得到它你需要调用findViewById。
使用此
((TextView)view).getText().toString();
而不是
TextView
从class FloaterContainerLayer:CALayer {
var gravity:CGFloat = 5.0
var maxFloaters = 9
var image:String?
var velocity:CGFloat = 50.0
}
获取文字。
答案 2 :(得分:1)
这里getName()是带有getter和setter的PogoClass项目名称,根据你的getter setter项目名称进行更改
String choice = result.get(position).getName();
Toast.makeText(getBaseContext(), choice, Toast.LENGTH_LONG).show();