我有点时间从使用baseadapter可点击的自定义列表视图中创建行。目前,可以点击它们,但是会出现错误并且应用程序崩溃..
任何帮助都会受到赞赏
以下是主要活动,其中包括扩展baseadapter的自定义适配器
public class MainActivity extends Activity implements OnItemClickListener {
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = (ListView) findViewById(R.id.listView);
list.setAdapter(new HalsAdapter(this));
list.setOnItemClickListener(this);
}
class SingleRow {
String title;
String description;
int image;
SingleRow(String title, String description, int image) {
this.title = title;
this.description = description;
this.image = image;
}
}
class HalsAdapter extends BaseAdapter {
ArrayList < SingleRow > list;
Context context;
HalsAdapter(Context c) {
context = c;
list = new ArrayList < SingleRow > ();
Resources res = c.getResources();
String[] titles = res.getStringArray(R.array.titles);
String[] descriptions = res.getStringArray(R.array.descriptions);
int[] images = {
R.drawable.placeholder1, R.drawable.placeholder2, R.drawable.placeholder3, R.drawable.placeholder4, R.drawable.placeholder5, R.drawable.placeholder6, R.drawable.placeholder7, R.drawable.placeholder8, R.drawable.placeholder9, R.drawable.placeholder10, R.drawable.placeholder11, R.drawable.placeholder12, R.drawable.placeholder13, R.drawable.placeholder14, R.drawable.placeholder15
};
for (int i = 0; i < 15; i++) {
list.add(new SingleRow(titles[i], descriptions[i], images[i]));
}
}
@Override
public int getCount() {
return list.size();
}@Override
public Object getItem(int i) {
return list.get(i);
}@Override
public long getItemId(int i) {
return i;
}@Override public View getView(int i, View view, ViewGroup viewGroup) {
LayoutInflater inflater(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.single_row, viewGroup, false);
TextView title = (TextView) row.findViewById(R.id.textView);
TextView description = (TextView) row.findViewById(R.id.textView2);
ImageView image = (ImageView) row.findViewById(R.id.imageView);
SingleRow temp = list.get(i);
title.setText(temp.title);
description.setText(temp.description);
image.setImageResource(temp.image);
return row;
}
}@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int arg2, long arg3) {
Intent intent = new Intent(homeScreen.this, privateSpaceList.class);
startActivity(intent);
break;
}
}
这是single_row.xml
`<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:src="@drawable/placeholder1" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/imageView"
android:layout_toRightOf="@+id/imageView"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView"
android:layout_alignLeft="@+id/textView"
android:layout_alignParentRight="true"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>`
我将onitemclick留空了因为我的方法不起作用而且mainactivity不喜欢我调用onitemclick的其他方法。
我创建了一个名为ListItemActivity的活动,我想要onclick来调用,反过来listitemactivity调用一个test.xml页面。我已经被困了几天试图找出如何使自定义行可点击..任何帮助将不胜感激。