У меня есть активность, в которой я хочу показать ListView как datagrid. arraylist ITransducer [] является динамическим, и я хочу использовать arraylist для создания столбцов listview.Может ли динамическая динамика создания списка ListView быть запрограммирована программно
ListView
ITransducer1 | ITransducer2 | ITransducer3
aa1 | aa2 | aa3
У меня был переопределенный метод getView(), но мне нужно загрузить макет для listview следующим образом: view = vi.inflate (R.layout.historical_data_details_item, null);
Могу ли я генерировать динамику раскладки списка с помощью ITransducer []?
public class HistoricalDataDetailsActivity extends Activity {
ListView lvDetails;
Context context;
IDAL idal;
TransducerFactory tFactory;
@Override
protected void onCreate(Bundle savedInBundleState) {
super.onCreate(savedInBundleState);
setContentView(R.layout.historical_data_details);
context = this;
tFactory = new TransducerFactory();
lvDetails = (ListView) findViewById(R.id.lvDetails);
}
@Override
protected void onStart() {
super.onStart();
ITransducer[] its = new ITransducer[]{
new AbsTransducer("aa1", TransducerType.AirPressure),
new AbsTransducer("aa2", TransducerType.AirPressure),
new AbsTransducer("aa3", TransducerType.Temperature)
};
// ListViewItemAdapter адаптер = новый ListViewItemAdapter (это, R.layout.historical_data_details_item, его); // lvDetails.setAdapter (адаптер); }
class ListViewItemAdapter extends ArrayAdapter<ITransducer>{
boolean HasHeader = false;
public ListViewItemAdapter(Context context, int textViewResourceId, ITransducer[] objects){
super(context, textViewResourceId, objects);
}
public View getView(int position, View convertView, ViewGroup parent){
View view = convertView;
if(view == null){
LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.historical_data_details_item, null);
TextView tvDate = new TextView(context);
tvDate.setLayoutParams(new ActionBar.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
tvDate.setText("DateTime");
LinearLayout layout = (LinearLayout) view.findViewById(R.id.tLayout);
layout.addView(tvDate);
view = layout;
}else
view = convertView;
return view;
}
}
}
Вы хотите показать aa1 | aa2 | aa3 как coloums? – Ankit
да, но столбцы динамические по таблице sqlite – Whistler