標籤:
BaseAdapter可以最靈活地實現ListView,裡面的控制項也可以獲得焦點,允許點擊.樣本如下:
main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" ><ListView android:id="@+id/myList" android:layout_width="match_parent" android:layout_height="match_parent"/></LinearLayout>
主方法:
public class BaseAdapterTest extends Activity{ ListView myList; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myList = (ListView) findViewById(R.id.myList); BaseAdapter adapter = new BaseAdapter() { @Override public int getCount() { // 指定一共包含40個選項 return 40; } @Override public Object getItem(int position) { return null; } // 重寫該方法,該方法的傳回值將作為清單項目的ID @Override public long getItemId(int position) { return position; } // 重寫該方法,該方法返回的View將作為列表框 @Override public View getView(int position , View convertView , ViewGroup parent) { // 建立一個LinearLayout,並向其中添加2個組件 LinearLayout line = new LinearLayout(BaseAdapterTest.this); line.setOrientation(0); ImageView image = new ImageView(BaseAdapterTest.this); image.setImageResource(R.drawable.ic_launcher); TextView text = new TextView(BaseAdapterTest.this); text.setText("第" + (position +1 ) + "個清單項目"); text.setTextSize(20); text.setTextColor(Color.RED); line.addView(image); line.addView(text); // 返回LinearLayout執行個體 return line; } }; myList.setAdapter(adapter); }}
效果如下:
android開發之BaseAdapter