Android ListView,每一行都在另一个ListView中显示它自己的内容

时间:2015-04-20 17:46:29

标签: android listview android-fragments android-listview

我有一个ListView填充了一些文字(在我的情况下是手机型号,例如:三星A,B,C ......)和一张图片(使用android-query从URL加载)。 选择行后,将创建ViewPager以及3个标签(规格信息 Img ),两个片段规格信息正在显示ListView,最后一个片段 Img 正在显示GridView。我对最后一个片段没有任何问题,但仅限于前两个片段,因为我不知道如何填充ListView所以它将显示所选行的内容。

是否可以为每一行指定不同的字符串数组?

如果没有,我怎么能实现这个目标:

enter image description here

正如您在本示例中所注意到的那样, Samsung D 的信息比前一个信息更多。

enter image description here

这是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();
            }
        });

抱歉我的英文。

1 个答案:

答案 0 :(得分:0)

您应该使用主OnItemClickListener上的ListView,您将有3个选项:

  1. 在主列表视图中有一个对象数组,但只显示模型名称或所需的信息,因此当用户选择项目时,只需从该位置获取对象并传递值(对象属性)到其他活动。

  2. 在主列表视图中有一个对象数组,但只显示模型名称或所需的信息,因此当用户选择项目时,只需从该位置获取对象并将该对象传递给其他活动

  3. 在第一个活动中有一个两个属性对象数组(itemId,itemName),当用户选择该项时,将itemId传递给下一个Activity,并从3-tabed活动中询问(到Web服务)或数据库)来自您拥有Id的项目的信息。

  4. 看起来应该是这样的:

        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,它会告诉您如何操作。