2016-08-12 98 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以外的其他值嗎? –