2016-08-12 63 views
4

我想在有多个项目的地方实现代码。 我能够填充ListView并显示所有这些项目,但我想夸大视图onItemClick。不幸的是,AdapterView不支持addView()使用addView而不是listView

所以现在我想用addView()通过遍历ArrayList<>()动态添加项目。 我该怎么做?

基本上,我想旁边TextViewListView内显示的自定义键盘布局和更新的TextView

价值这就是我想现在要做的。

public class OrderSummary extends Activity { 
    LinearLayout linearLayout; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_order_summary); 
     linearLayout = new LinearLayout(this); 
     View view = View.inflate(this, R.layout.top_bar_layout, null); 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
     linearLayout.addView(view, params); 
     view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Toast.makeText(OrderSummary.this, "Clicked", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 
+0

只需在您的适配器中添加一个项目,然后调用notify notifydatasetchanged方法 –

+0

我那样做了。该列表正在填充,但我不能膨胀在listView顶部的另一个视图。这是我面临的问题 –

+0

您是否使用过[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html)?使用起来更加方便... – snachmsm

回答

0

在你的代码中,你有添加linearLayout到主容器的问题吗?

+0

setContentView(R.layout.order_summary);增加了一个不错的大相对布局。 linearlayout是该relativelayout的子项 –

+0

linearLayout = new LinearLayout(this);意味着你正在创造新的 –

+0

哦,是的。现在我明白了!谢谢大家 –

1

你可以做的是采取LinearLayout(与方向设置为垂直),而不是ListView。然后为每一行创建一个自定义视图,遍历ArrayList,然后膨胀视图,并使用addView()继续将它们添加到LinearLayout

P.S.没有实际的代码,我不能告诉你如何纠正你的代码。

+0

我想这就是你的意思。但视图不会添加。我应该为inflate()传递除null以外的其他值吗? –