Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于昵称android更改Listview适配器行_Android_Android Listview - Fatal编程技术网

基于昵称android更改Listview适配器行

基于昵称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

在我的listViewAdapter中,如果昵称为dexter,则listview行vi=充气器.inflate(R.layout.sujet_ro,null);如果昵称不等于dexter,则显示另一行。这在我下面的代码中显示。当我运行代码时,如果名称不是dexter,它将在if条件下打开,并且永远不会转到else。我做了什么或错过了什么请帮忙

 @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);