如何在baseadapter中单击自定义列表视图行?

时间:2014-05-11 04:15:06

标签: android listview adapter baseadapter

我有点时间从使用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页面。我已经被困了几天试图找出如何使自定义行可点击..任何帮助将不胜感激。

0 个答案:

没有答案