我有一个ListView
填充了一些文字(在我的情况下是手机型号,例如:三星A,B,C ......)和一张图片(使用android-query从URL加载)。
选择行后,将创建ViewPager
以及3个标签(规格,信息, Img ),两个片段规格和信息正在显示ListView
,最后一个片段 Img 正在显示GridView
。我对最后一个片段没有任何问题,但仅限于前两个片段,因为我不知道如何填充ListView
所以它将显示所选行的内容。
是否可以为每一行指定不同的字符串数组?
如果没有,我怎么能实现这个目标:
正如您在本示例中所注意到的那样, Samsung D 的信息比前一个信息更多。
这是ListView的主要ClickListener:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Bundle bundle = new Bundle();
bundle.putInt("id", position);
TabStripAdapter newFragment = new TabStripAdapter();
newFragment.setArguments(bundle);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
抱歉我的英文。
答案 0 :(得分:0)
您应该使用主OnItemClickListener
上的ListView
,您将有3个选项:
在主列表视图中有一个对象数组,但只显示模型名称或所需的信息,因此当用户选择项目时,只需从该位置获取对象并传递值(对象属性)到其他活动。
在主列表视图中有一个对象数组,但只显示模型名称或所需的信息,因此当用户选择项目时,只需从该位置获取对象并将该对象传递给其他活动
在第一个活动中有一个两个属性对象数组(itemId,itemName),当用户选择该项时,将itemId传递给下一个Activity,并从3-tabed活动中询问(到Web服务)或数据库)来自您拥有Id的项目的信息。
看起来应该是这样的:
MainListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// String selectedProductId = MainListArray.get(position).getId(); //Option 1 & 3
// String selectedProductInfo = MainListArray.get(position).getInfo ();
// ...more attributes //Option 1
// CustomObject selectedProduct = MainListArray.get(position); //Option 2.
Intent i = new Intent(_myContext, newActivity.class);
// i.putString("productId", selectedProductId); //Option 1 & 3.
// i.putString("productInfo", selectedProductInfo); //Option 1.
// ...more attributes //Option 2.
// i.putParceleable("product", selectedProduct); //Option 2.
startActivity(i);
}
});
要传递完整的对象,请查看this thread,它会告诉您如何操作。