0
私がリストビューに30列または多分より多くを生成したい、私は次のように実行します。アンドロイドでリストビューの列を動的に追加する方法は?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView=(ListView)findViewById(R.id.liv);
ArrayList<HashMap<String,String>> sourceList=new ArrayList<HashMap<String, String>>();
ArrayList<String> from=new ArrayList<>();
ArrayList<Integer> to = new ArrayList<>();
int colNumber=30;
int rowNumber=30;
LinearLayout layout=new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
for(int i=0;i<colNumber;i++) {
from.add("col" + i);
TextView textView=new TextView(this);
textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
layout.addView(textView);
to.add(textView.generateViewId());
}
for(int j=0;j<rowNumber;j++) {
HashMap<String, String> map = new HashMap<String, String>();
for (int i = 0; i < colNumber; i++) {
map.put("col" + i, i+","+j);
}
sourceList.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(this,sourceList, layout.getId(),from.toArray(new String[from.size()]),Utils.ToIntsArray(to));
listView.setAdapter(adapter);
}
しかしlayout.getId()である「-1」、私は効果的なレイアウトを生成する方法がわかりませんリソースID。
私はプログラムをsetIdで修正しますが、閉じても例外はスローされません。TextViewは新しい 'TextView textView = new TextView(this);'私は学習中です... – HaibaraAi
ListViewではなくGridView。 – fijili
しかし、なぜそれが動作しないのか教えていただけますか? xmlリソースIDを使用すると正しく作成されます。つまり、レイアウトxmlに30テキストビューを書き込む場合です。 – HaibaraAi