0

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

1 回答 1

0

我建议将 getName() 移到 Activity 中,以便为这两种目的访问它。

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

于 2011-10-23T18:34:01.007 回答