我有一個簡單的問題:Android的自定義視圖VS充氣XML
你能不能給我說說使用Custom views vs Layout inflater
到執行代碼的一些建議嗎?哪一個更適合使用?有人可以向我解釋兩者的優點和缺點嗎?
如果我的問題不清楚,下面是一個解釋的例子。 聲明是這樣的:
public class Shortcut extends RelativeLayout{
private Button btn;
private TextView title;
/*some getters & setters here*/
public Shortcut(Context context){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.shortcut, /*other params*/);
title = v.findViewById(R.id.title);
btn = v.findViewById(R.id.btn);
}
}
而且使用這樣的
public class MainActivit extends Activity{
ListView list = new ListView();
public void onCreate(Bundle...){
......
list.setAdapter(new MyAdapter());
}
// some code here
private class MyAdapter extends BaseAdapter{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Shortcut shortcut = new Shortcut(this);
shortcut.setBtnText("i'm btn");
shortcut.setTitle("btn1");
return shortcut;
}
}
或做這種方式:
public class MainActivit extends Activity{
ListView list = new ListView();
public void onCreate(Bundle...){
......
list.setAdapter(new MyAdapter());
}
// some code here
private class MyAdapter extends BaseAdapter{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = inflater.inflate(R.layout.shortcut, parent, false);
}
TextView title = (TextView) view.findViewById(R.id.title);
Button btn = (Button) view.findViewById(R.id.btn);
title.setText("Hey!");
btn.setText("smth");
return view;
}
}
對不起,如果我有我的代碼中的一些錯誤,我印刷。它只是在這裏沒有拼寫檢查或語法檢查。