标签:listactivity android android-imageview
我有一个小型应用程序,我正在尝试使用ListActivity显示youtube缩略图列表
public class ResultListActivity extends ListActivity {
.....
......
@Override
protected void onCreate(Bundle savedInstanceState) {
loadData();
---
---
}
private void loadData(final String searchQuery) {
AsyncTask<Object, Void, List<YouTubeVideos>> asyncTask = new AsyncTask<Object, Void, List<YouTubeVideos>>() {
.....
}
/** {@inheritDoc} */
@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
super.onListItemClick(l, v, pos, id);
Log.d("test","Inside onListItemClick");
}
xml看起来像这样
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
</ListView>
<ImageView
android:id="@+id/imageView1"
android:layout_height="wrap_content"
android:layout_width="100dp"
android:focusable="false"
android:focusableInTouchMode="false"
>
</ImageView>
适配器:
public class ResultViewAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = (ImageView) row.findViewById(R.id.imageView1);
imageView.setImageDrawable(torvideo.getDrawable());
return row;
}
...
}
我无法调用onListItemClick.如果我有任何错误,请告诉我吗?
更新1/17
当我单击时,什么也没有发生,但是我在日志中看到了这些
01-18 04:09:32.030:W / Trace(973):nativeGetEnabledTags中的意外值:0
解决方法:
在我的ListView中,我有一个可单击的TextView和可单击的ImageView. onListItemClick不适用于我,因为列表行中有多个可点击项.因此,我所做的是在适配器的getView()中实现了onClickListener.这是我的代码:
public class SimpleArrayAdapter extends ArrayAdapter<String>{
private LayoutInflater mInflater;
private String[] mStrings;
private TypedArray mIcons;
private int mViewResourceId;
public SimpleArrayAdapter(Context context, int textViewResourceId, String[] names, TypedArray icons) {
super(context, textViewResourceId, names);
// TODO Auto-generated constructor stub
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mStrings = names;
mIcons = icons;
mViewResourceId = textViewResourceId;
}
public int getCount(){
return mStrings.length;
}
public View getView(final int position, View convertView, ViewGroup parent){
convertView = mInflater.inflate(mViewResourceId, null);
ImageView iv = (ImageView)convertView.findViewById(R.id.option_icon);
iv.setImageDrawable(mIcons.getDrawable(position));
iv.setTag("colorChooserClicked");
iv.setOnClickListener( new OnClickListener() {
int pos = position;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("text", "Image clicked, row %d"+pos);
}
});
TextView tv = (TextView)convertView.findViewById(R.id.textview01);
tv.setText(mStrings[position]);
tv.setTag("textViewClicked");
tv.setOnClickListener(new OnClickListener() {
int textpos = position;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("text", "Title clicked %s"+mStrings[textpos]);
}
});
return convertView;
}
}
发生这种情况是因为我们有多个可点击的项目,并且我们正在尝试使用ListActivity.另一个选择是为MainActivity扩展Activity类,然后执行.
标签:listactivity,android,android-imageview 来源: https://codeday.me/bug/20191009/1878514.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。