从onItemClick调用CustomAdapter方法



我有一个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);

我建议将getName()移到Activity中,在那里它可以用于这两个目的。

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

最新更新