Androidは一つのactivityに複数のlistviewを追加する方法を実現します。
この実例は、Androidが1つのactivityに複数のlistviewを追加する方法を実現することを述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
listviewのidは普通こんなandroid:id=「@id/android:list」です。この時のActivityはListActivityですが、このようなActivityの中ではこれまでに、複数のactivityを追加する方法が見つかりませんでした。複数のlistviewを追加するには、Activityが一般的なActivityなら、listviewのidも自分で定義して、android:id=「@+id/mylist」に変更します。そして一般的なコントロールを使うように初期化すればいいです。adapperについては、BaseAdapterを引き継ぎ、それぞれのlistviewのためにアドホッターを定義し、対応するアドホッターを設定すればいいです。
参照コード:
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。
listviewのidは普通こんなandroid:id=「@id/android:list」です。この時のActivityはListActivityですが、このようなActivityの中ではこれまでに、複数のactivityを追加する方法が見つかりませんでした。複数のlistviewを追加するには、Activityが一般的なActivityなら、listviewのidも自分で定義して、android:id=「@+id/mylist」に変更します。そして一般的なコントロールを使うように初期化すればいいです。adapperについては、BaseAdapterを引き継ぎ、それぞれのlistviewのためにアドホッターを定義し、対応するアドホッターを設定すればいいです。
参照コード:
public class myActivity extends Activity implements OnClickListener
{
private ListViewlistview_psychologicalstate,listview_weatherstate;
private ListAdapter listadapter_psychologicalstate,listadapter_weatherstate;
private ArrayList<String> psychologicalstatearray = new ArrayList<String>(),weatherstatearray = new ArrayList<String>();
private String [] strpsychologicalstate = new String[]{" "," "," "," "," "," "};
private String [] strweatherstate = new String[]{" "," "," "};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.personalizedorderview);
findView();
}
public void findView()
{
listview_psychologicalstate = (ListView) findViewById(R.id.psychologicalstatelistid);
listview_weatherstate = (ListView) findViewById(R.id.weatherstatelistid);
for(int i = 0;i<strpsychologicalstate.length;i++)
psychologicalstatearray.add(strpsychologicalstate[i]);
for(int i = 0;i<strweatherstate.length;i++)
weatherstatearray.add(strweatherstate[i]);
listadapter_psychologicalstate = new GetinflamedAdapter(this,psychologicalstatearray);
listview_psychologicalstate.setAdapter(listadapter_psychologicalstate);
listadapter_weatherstate = new GetinflamedAdapter(this,weatherstatearray);
listview_weatherstate.setAdapter(listadapter_weatherstate);
}
public class GetinflamedAdapter extends BaseAdapter
{
private Context context;
private LayoutInflater mInflater;
private ArrayList<String> arraylist;
public GetinflamedAdapter(Context context,ArrayList<String> arraylist )
{
this.context=context;
this.arraylist = arraylist;
mInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arraylist.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return arraylist.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
convertView = mInflater.inflate(R.layout.inflamedchild, null);
ViewHolder viewHolder = null;
viewHolder = new ViewHolder();
viewHolder.label = (TextView) convertView.findViewById(R.id.bodystateid1);
viewHolder.label.setText(arraylist.get(position).toString());
viewHolder.label.setTextColor(Color.GREEN);
viewHolder.label.setTextSize(22);
convertView.setTag(viewHolder);
return convertView;
}
private class ViewHolder
{
TextView label;
}
}
Android関連の内容についてもっと興味がある読者は、当駅のテーマを調べてもいいです。「Androidプログラミングのactivity操作技術のまとめ」、「AndroidビューViewテクニックのまとめ」、「Android操作SQLiteデータベース技術まとめ」、「Android操作json形式データ技術のまとめ」、「Androidデータベース操作技術のまとめ」、「Androidファイルの操作テクニックのまとめ」、「Androidプログラミング開発のSDカード操作方法のまとめ」、「Android開発入門と上級教程」、「Android資源操作技術のまとめ」、「Androidコントロールの使い方のまとめ」ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。