我有一个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设置为静态,以便您可以直接访问它,但这可能会导致其他问题。