@SuppressWarnings("deprecation")
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
MainActivity.this, R.layout.user, cursor, from, to)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
cursor.moveToPosition(position);
String s = cursor.getString(cursor.getColumnIndex("USER_SEX"));
final View row = super.getView(position, convertView, parent);
LayoutInflater inflater = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View sexxx = inflater.inflate(R.layout.user, null);
sexlogo = (ImageView) sexxx.findViewById(R.id.sex);
if (s.equalsIgnoreCase("Male"))
sexlogo.setImageResource(R.drawable.male);
else
sexlogo.setImageResource(R.drawable.female);
return row;
}
};
是Android新手,该应用会将用户添加到SQLite databse
,然后使用ListView
将数据库中找到的所有用户检索到cursor
。
我想检查用户的性别,然后在从数据库中检索数据并将其添加到listView
之前为他设置徽标。
我已经编辑了我的问题并添加了上面的代码,应用程序没有崩溃,而且图像也没有出现。
任何帮助,请
答案 0 :(得分:1)
getView
函数必须返回要显示的视图。
此代码返回row
,这是超类创建的视图。
自定义图片位于sexxx
视图中,未使用。
答案 1 :(得分:0)
这是正确的答案,只需删除LayoutInflater
,因为super
已经膨胀了它。
夸大layout
会返回代表root
的新xml
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
cursor.moveToPosition(position);
String s = cursor.getString(cursor.getColumnIndex("USER_SEX"));
final View row = super.getView(position, convertView, parent);
sexlogo = (ImageView) row.findViewById(R.id.sex);
if (s.equals("Male"))
sexlogo.setImageResource(R.drawable.male);
else
sexlogo.setImageResource(R.drawable.female);
return row;
}
};