实现点击一个ListView的Item,弹出不同的控件.
这是一个内容类
Name 字段决定其显示
启动控件的Context对象
和一个Intent 确定被启动控件对象
使用startActivity来启动
package com.example.l01uicontrols;
import android.content.Context;
import android.content.Intent;
public class ListCellData
{
@Override
public String toString()
{
return controlName;
}
private String controlName;
private Context context;
private Intent relateIntent;
public ListCellData(String controlName, Context context, Intent relateIntent)
{
super();
this.controlName = controlName;
this.context = context;
this.relateIntent = relateIntent;
}
public String getControlName()
{
return controlName;
}
public void setControlName(String controlName)
{
this.controlName = controlName;
}
public Context getContext()
{
return context;
}
public void setContext(Context context)
{
this.context = context;
}
public Intent getRelateIntent()
{
return relateIntent;
}
public void setRelateIntent(Intent relateIntent)
{
this.relateIntent = relateIntent;
}
public void startActivity()
{
getContext().startActivity(relateIntent);
}
}
将这个类通过Adapter和ListView关联起来
package com.example.l01uicontrols;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ListActivity
{
private ArrayAdapter<ListCellData> adapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
adapter = new ArrayAdapter<ListCellData>(this,
android.R.layout.simple_list_item_1);
setListAdapter(adapter);
adapter.add(new ListCellData("RadioGroup", this, new Intent(this,
act01.class)));
adapter.add(new ListCellData("CheckBox", this, new Intent(this,
UsingCheckBox.class)));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
ListCellData data = adapter.getItem(position);
data.startActivity();
}
}
点击Item就能启动Activirty啦