使用addView而不是listView
我想在有多个项目的地方实现代码。 我能够填充ListView
并显示所有这些项目,但我想夸大视图onItemClick
。不幸的是,AdapterView
不支持addView()
。使用addView而不是listView
所以现在我想用addView()
通过遍历ArrayList<>()
动态添加项目。 我该怎么做?
基本上,我想旁边TextView
的ListView
内显示的自定义键盘布局和更新的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();
}
});
}
}
在你的代码中,你有添加linearLayout到主容器的问题吗?
setContentView(R.layout.order_summary);增加了一个不错的大相对布局。 linearlayout是该relativelayout的子项 –
linearLayout = new LinearLayout(this);意味着你正在创造新的 –
哦,是的。现在我明白了!谢谢大家 –
你可以做的是采取LinearLayout
(与方向设置为垂直),而不是ListView
。然后为每一行创建一个自定义视图,遍历ArrayList
,然后膨胀视图,并使用addView()
继续将它们添加到LinearLayout
。
P.S.没有实际的代码,我不能告诉你如何纠正你的代码。
我想这就是你的意思。但视图不会添加。我应该为inflate()传递除null以外的其他值吗? –
只需在您的适配器中添加一个项目,然后调用notify notifydatasetchanged方法 –
我那样做了。该列表正在填充,但我不能膨胀在listView顶部的另一个视图。这是我面临的问题 –
您是否使用过[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html)?使用起来更加方便... – snachmsm