Я хочу, чтобы генерировать 30 или столбец может быть больше в ListView, я так:Как динамически добавить столбец списка в android?
@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», то я не знаю, как для создания эффективной компоновки идентификатор ресурса.
Я изменяю программу setId, но он будет закрыт и не будет генерировать исключение, я думаю, что TextView был новым 'TextView textView = new TextView (this);' Я в процессе обучения ... – HaibaraAi
Возможно, вы могли бы использовать GridView вместо ListView. – fijili
Но не могли бы вы рассказать мне, почему это не работает? Если я использую идентификатор ресурса xml, тогда он будет создан правильно. Я имею в виду, если я пишу 30 textview в макете xml – HaibaraAi