基于昵称android更改Listview适配器行
在我的listViewAdapter中,如果昵称为dexter,则listview行vi=充气器.inflate(R.layout.sujet_ro,null);如果昵称不等于dexter,则显示另一行。这在我下面的代码中显示。当我运行代码时,如果名称不是dexter,它将在if条件下打开,并且永远不会转到else。我做了什么或错过了什么请帮忙基于昵称android更改Listview适配器行,android,android-listview,Android,Android Listview,在我的listViewAdapter中,如果昵称为dexter,则listview行vi=充气器.inflate(R.layout.sujet_ro,null);如果昵称不等于dexter,则显示另一行。这在我下面的代码中显示。当我运行代码时,如果名称不是dexter,它将在if条件下打开,并且永远不会转到else。我做了什么或错过了什么请帮忙 @Override public View getView(int position, View convertView, ViewG
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
player = data.get(position).getPlayer();
try {
jsonObject = new JSONObject(player);
if (jsonObject.has("@nickName"))
nickName = jsonObject.getString("@nickName");
//System.out.println("nickName: "+ nickName);
}catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (convertView == null) {
if (nickName.equalsIgnoreCase("dexter")) {
vi = inflater.inflate(R.layout.sujet_ro, null);
System.out.println("nickName: "+ "dexter");
} else {
vi = inflater.inflate(R.layout.row_droite, null);
System.out.println("nickName: "+ "mckay");
}
holder = new ViewHolder();
holder.txMessage = (TextView) vi.findViewById(R.id.txMessage);
holder.txLeft= (TextView) vi.findViewById(R.id.txLeft);
holder.txRight= (TextView) vi.findViewById(R.id.txRight);
vi.setTag(holder);
}else{
holder = (ViewHolder) vi.getTag();
}
convertView
返回null
对getView()
的第一次调用,否则它将返回已经膨胀的布局视图,但您需要根据某些数据更改布局,以便您每次都需要膨胀布局,如我所述。我不知道如何使用viewholder来满足这种类型的需求
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = null;
player = data.get(position).getPlayer();
try {
jsonObject = new JSONObject(player);
if (jsonObject.has("@nickName"))
nickName = jsonObject.getString("@nickName");
//System.out.println("nickName: "+ nickName);
}catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (nickName.equalsIgnoreCase("dexter")) {
vi = inflater.inflate(R.layout.sujet_ro, null);
System.out.println("nickName: "+ "dexter");
} else {
vi = inflater.inflate(R.layout.row_droite, null);
System.out.println("nickName: "+ "mckay");
}
// Note: Before accessing your textviews try to check whether both layouts has same textview with below id
//(TextView) vi.findViewById(R.id.txMessage);
//(TextView) vi.findViewById(R.id.txLeft);
//(TextView) vi.findViewById(R.id.txRight);