1
GetView位置始終爲0。繼http://www.codelearn.org/android-tutorial/android-listview所示的基本概念,我的代碼如下:的Android的ListView自定義適配器基礎知識:getView()的位置始終爲0
public void DisplayUserList()
{ // Get data list from SQL Database
UserList = mySQLiteHelper.getUserList(ACTIVE);
// Get ListView
user_listview_control = (ListView) findViewById(R.id.user_listview);
// Get Adapter
userAdapter = new UserAdapter();
// Bind it all together
user_listview_control.setAdapter(userAdapter);
} // end DisplayUserList()
// User List Base Adapter
public class UserAdapter extends BaseAdapter {
@Override
public int getCount() {
return UserList.size();
}
@Override
public Structures.user_struct getItem(int arg0){
return UserList.get(arg0);
}
@Override
public long getItemId(int arg0){return arg0;}
@Override
public View getView(int position, View arg1, ViewGroup arg2){
if (arg1 == null){
LayoutInflater inflater = (LayoutInflater) Settings.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
try {
arg1 = inflater.inflate(R.layout.userlist_item, arg2, false);
}
catch (Exception ex){
String errorMessage = ex.getMessage();
}
}
TextView username = (TextView)arg1.findViewById(R.id.username);
TextView firstname = (TextView)arg1.findViewById(R.id.userfirstname);
TextView lastname = (TextView)arg1.findViewById(R.id.userlastname);
TextView lastlogin = (TextView)arg1.findViewById(R.id.userlastlogin);
UserData = UserList.get(position); //(always zero)
username.setText(user.username);
firstname.setText(user.user_firstname);
lastname.setText(user.user_lastname);
if (user.user_lastlogin_date.length() == 0) {
lastlogin.setText("--");
} else {
lastlogin.setText(user.user_lastlogin_date);
}
// OnClickListener for this row.
arg1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(Settings.this, "User Clicked", Toast.LENGTH_SHORT).show();
//Integer position = (Integer) view.getTag();
}
});
return arg1;
}
} // end UserAdapter()
SQLite的數據表有三個要素:在的UserList返回定義爲:
public List<Structures.user_struct> UserList;
當user_listview_control.setAdapter被調用時,getCount將()被調用多次只是getView之前(返回值3)()被調用。在getView()中,位置始終爲0.生成的ListView顯示僅與數據庫的第一項有關。 [注:如果我強制position = 1或2,則代碼返回該列表中的下一個用戶]。我沒有看到我離開的地方。它可能是限制顯示的xml佈局嗎?當我運行上述引用的示例代碼時,它確實可以用作簡單的xml佈局。所以???
安置自己的佈局文件'userlist_item.xml' –
您可以發佈mySQLiteHelper。 getUserList(A莫如);方法? – EagleEye
你可以發佈你的「user_listview」xml嗎? – taciosd