从onItemClick调用CustomAdapter方法

时间:2011-10-23 18:21:32

标签: java android custom-adapter onitemclick

我有一个customAdapter,网格中的视图的.xml是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:orientation="vertical">
    <ImageView
    android:id="@+id/imagepart"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:gravity="top"/>

    <TextView
    android:id="@+id/textpart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor = "#000000"
    android:gravity="top"/>
</LinearLayout>

在这个自定义适配器中,我有一个从私有数组返回字符串的方法。

public class DishesImageAdapter extends BaseAdapter {

    ...

    public String getName(int position) {
        if(position > 0 && position >= mThumbsNames.length)
        {
            return mThumbsNames[position];
        }
        return null;
    }

    ...

}

我想在onItemClick中调用这个前一个方法,我已经通过“父”对象尝试了几种方法,但我不能...

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
       Intent DishDetailsIntent = new Intent(v.getContext(), DishesDetails.class);
       DishDetailsIntent.putExtra("SectorNum", getIntent().getStringExtra("SectorNum"));
       String DishName = //
       DishDetailsIntent.putExtra("DishName", DishName);
       startActivity(DishDetailsIntent);
}

任何帮助?

提前致谢。

最后我得到了答案:

TextView tv= (TextView) v.findViewById(R.id.textpart);
String DishName = tv.getText().toString();
DishDetailsIntent.putExtra("DishName", DishName);

1 个答案:

答案 0 :(得分:0)

我建议将getName()移到Activity中,以便进行这两种操作。

第二个选项是将getName设置为静态,以便您可以直接访问它,这可能会导致其他问题。