无法转换为java.lang.String chatMessages=newarraylist(); listView=findViewById(R.id.list\u of_消息); 消息(主题标识); listView.setTranscriptMode(AbsListView.TRANSCRIPT\u MODE\u ALWAYS\u SCROLL); setAdapter(chatAdapter); buttonSend=findViewById(R.id.send); fileSend=findviewbyd(R.id.file\u send); chatText=(EditText)findViewById(R.id.mychat); //删除_btn=findviewbyd(R.id.); setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){ //视图选择; @凌驾 公共布尔长单击(AdapterView父视图、最终视图、最终整型位置、长id){ 如果(视图!=null){ 视图.setBackgroundColor(0xFFB2DFDB); } 字符串值=(字符串)listView.getItemAtPosition(位置); msgid=chatMessages.get(position.getMessageID(); message=chatMessages.get(position.getMessageText(); userid1=chatMessages.get(position.getUserId(); username=chatMessages.get(position.getMessageUser(); replyuser=chatMessages.get(position.getReply_user(); if(sno.equals(userid1)){ 视图.setBackgroundColor(0xFFB2DFDB); //Toast.makeText(getApplicationContext(),“Hello”+userid1+msgid,Toast.LENGTH_SHORT).show(); //ImageView编辑=(ImageView)findViewById(R.id.delete_图标); //edit.setVisibility(View.VISIBLE); // ); topic.setText(getString(R.string.edit)); myToolbar.setLogo(R.drawable.edit); //视图.setBackgroundColor(颜色.白色); topic.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 聊天信息。删除(位置); 视图.setBackgroundColor(颜色.透明); userid1=null; notifyDataSetChanged(); chatText.setText(消息); } }); myToolbar.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 聊天信息。删除(位置); userid1=null; notifyDataSetChanged(); chatText.setText(消息); } }); }否则{ 视图.setBackgroundColor(0xFFB2DFDB); //Toast.makeText(getApplicationContext(),“Hello”+userid1+msgid,Toast.LENGTH_SHORT).show(); topic.setText(getString(R.string.reply)); myToolbar.setLogo(R.drawable.replay); //视图.setBackgroundColor(颜色.白色); //reply=(ImageView)findViewById(R.id.reply_图标); //reply.setVisibility(View.VISIBLE); topic.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout=(LinearLayout)findViewById(R.id.reply_布局); replylayout.setVisibility(View.VISIBLE); TextView replay\u name=(TextView)findViewById(R.id.reply\u用户); TextView replay_text=(TextView)findViewById(R.id.reply_text); ImageButton Cancel=(ImageButton)findViewById(R.id.cancell_btn); replay_name.setText(用户名); replay_text.setText(消息); cancell.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout.removeAllViews(); startActivity(getIntent()); } }); } }); myToolbar.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout=(LinearLayout)findViewById(R.id.reply_布局); replylayout.setVisibility(View.VISIBLE); TextView replay\u name=(TextView)findViewById(R.id.reply\u用户); TextView replay_text=(TextView)findViewById(R.id.reply_text); ImageButton Cancel=(ImageButton)findViewById(R.id.cancell_btn); replay_name.setText(用户名); replay_text.setText(消息); cancell.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout.removeAllViews(); startActivity(getIntent()); } }); } }); } 返回true; } });

无法转换为java.lang.String chatMessages=newarraylist(); listView=findViewById(R.id.list\u of_消息); 消息(主题标识); listView.setTranscriptMode(AbsListView.TRANSCRIPT\u MODE\u ALWAYS\u SCROLL); setAdapter(chatAdapter); buttonSend=findViewById(R.id.send); fileSend=findviewbyd(R.id.file\u send); chatText=(EditText)findViewById(R.id.mychat); //删除_btn=findviewbyd(R.id.); setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){ //视图选择; @凌驾 公共布尔长单击(AdapterView父视图、最终视图、最终整型位置、长id){ 如果(视图!=null){ 视图.setBackgroundColor(0xFFB2DFDB); } 字符串值=(字符串)listView.getItemAtPosition(位置); msgid=chatMessages.get(position.getMessageID(); message=chatMessages.get(position.getMessageText(); userid1=chatMessages.get(position.getUserId(); username=chatMessages.get(position.getMessageUser(); replyuser=chatMessages.get(position.getReply_user(); if(sno.equals(userid1)){ 视图.setBackgroundColor(0xFFB2DFDB); //Toast.makeText(getApplicationContext(),“Hello”+userid1+msgid,Toast.LENGTH_SHORT).show(); //ImageView编辑=(ImageView)findViewById(R.id.delete_图标); //edit.setVisibility(View.VISIBLE); // ); topic.setText(getString(R.string.edit)); myToolbar.setLogo(R.drawable.edit); //视图.setBackgroundColor(颜色.白色); topic.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 聊天信息。删除(位置); 视图.setBackgroundColor(颜色.透明); userid1=null; notifyDataSetChanged(); chatText.setText(消息); } }); myToolbar.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 聊天信息。删除(位置); userid1=null; notifyDataSetChanged(); chatText.setText(消息); } }); }否则{ 视图.setBackgroundColor(0xFFB2DFDB); //Toast.makeText(getApplicationContext(),“Hello”+userid1+msgid,Toast.LENGTH_SHORT).show(); topic.setText(getString(R.string.reply)); myToolbar.setLogo(R.drawable.replay); //视图.setBackgroundColor(颜色.白色); //reply=(ImageView)findViewById(R.id.reply_图标); //reply.setVisibility(View.VISIBLE); topic.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout=(LinearLayout)findViewById(R.id.reply_布局); replylayout.setVisibility(View.VISIBLE); TextView replay\u name=(TextView)findViewById(R.id.reply\u用户); TextView replay_text=(TextView)findViewById(R.id.reply_text); ImageButton Cancel=(ImageButton)findViewById(R.id.cancell_btn); replay_name.setText(用户名); replay_text.setText(消息); cancell.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout.removeAllViews(); startActivity(getIntent()); } }); } }); myToolbar.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout=(LinearLayout)findViewById(R.id.reply_布局); replylayout.setVisibility(View.VISIBLE); TextView replay\u name=(TextView)findViewById(R.id.reply\u用户); TextView replay_text=(TextView)findViewById(R.id.reply_text); ImageButton Cancel=(ImageButton)findViewById(R.id.cancell_btn); replay_name.setText(用户名); replay_text.setText(消息); cancell.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ replylayout.removeAllViews(); startActivity(getIntent()); } }); } }); } 返回true; } });,java,android,Java,Android,我想在长按列表项时在列表视图上实现setOnItemLongClickListener,然后执行其他活动,如删除和编辑功能。当按下长按时,则无法将give error转换为java.lang.String chatMessages = new ArrayList<>(); listView = findViewById(R.id.list_of_messages); Message(topic_id); listView.setTranscriptMode

我想在长按列表项时在列表视图上实现setOnItemLongClickListener,然后执行其他活动,如删除和编辑功能。当按下长按时,则无法将give error转换为java.lang.String

chatMessages = new ArrayList<>();
    listView = findViewById(R.id.list_of_messages);

    Message(topic_id);

    listView.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
    listView.setAdapter(chatAdapter);



    buttonSend = findViewById(R.id.send);
    fileSend = findViewById(R.id.file_send);
    chatText = (EditText) findViewById(R.id.mychat);





    //  delete_btn = findViewById(R.id.);


    listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

        // View select;
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, final View view, final int position, long id) {


                    if ( view != null){

                  view.setBackgroundColor(0xFFB2DFDB);

                 }



            String value = (String) listView.getItemAtPosition(position);
            msgid = chatMessages.get(position).getMessageID();
            message = chatMessages.get(position).getMessageText();
            userid1 = chatMessages.get(position).getUserId();
            username = chatMessages.get(position).getMessageUser();
            replyuser = chatMessages.get(position).getReply_user();





            if (sno.equals(userid1)) {
                view.setBackgroundColor(0xFFB2DFDB);
               // Toast.makeText(getApplicationContext(),"Hello"+userid1+msgid,Toast.LENGTH_SHORT).show();

               // ImageView edit = (ImageView) findViewById(R.id.delete_icon);
             //   edit.setVisibility(View.VISIBLE);
             //   );
                topic.setText(getString(R.string.edit));
                myToolbar.setLogo(R.drawable.edit);


              //  view.setBackgroundColor(Color.WHITE);
                topic.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        chatMessages.remove(position);
                        view.setBackgroundColor(Color.TRANSPARENT);
                        userid1 = null;
                        chatAdapter.notifyDataSetChanged();
                        chatText.setText(message);


                    }
                });
                myToolbar.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        chatMessages.remove(position);
                        userid1 = null;
                        chatAdapter.notifyDataSetChanged();
                        chatText.setText(message);



                    }
                });

            } else {
                view.setBackgroundColor(0xFFB2DFDB);
               // Toast.makeText(getApplicationContext(),"Hello"+userid1+msgid,Toast.LENGTH_SHORT).show();

                topic.setText(getString(R.string.reply));
                myToolbar.setLogo(R.drawable.replay);
                // view.setBackgroundColor(Color.WHITE);
             //   reply = (ImageView) findViewById(R.id.reply_icon);
             //   reply.setVisibility(View.VISIBLE);
                topic.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        replylayout = (LinearLayout) findViewById(R.id.reply_layout);
                        replylayout.setVisibility(View.VISIBLE);

                        TextView replay_name = (TextView) findViewById(R.id.reply_user);
                        TextView replay_text = (TextView) findViewById(R.id.reply_text);
                        ImageButton cancell = (ImageButton) findViewById(R.id.cancell_btn);

                        replay_name.setText(username);
                        replay_text.setText(message);


                        cancell.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                replylayout.removeAllViews();
                                startActivity(getIntent());

                            }
                        });


                    }
                });
           myToolbar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                replylayout = (LinearLayout) findViewById(R.id.reply_layout);
                replylayout.setVisibility(View.VISIBLE);

                TextView replay_name = (TextView) findViewById(R.id.reply_user);
                TextView replay_text = (TextView) findViewById(R.id.reply_text);
                ImageButton cancell = (ImageButton) findViewById(R.id.cancell_btn);

                replay_name.setText(username);
                replay_text.setText(message);


                cancell.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        replylayout.removeAllViews();
                        startActivity(getIntent());

                    }
                });





            }
        });




            }

            return true;

        }

   });
用这个

String value = (String) listView.getItemAtPosition(position);

主要问题在这方面

String value = String.valueOf(listView.getItemAtPosition(position));
我肯定不能确定listview是否像后面调用的代码那样充满了字符串项

String value = (String) listView.getItemAtPosition(position);
所以你的价值应该是

chatMessages.get(position).getMessageID()
在适配器中,您需要更改这些方法(如果尚未更改):

视图不能转换为字符串。我认为上面的代码应该是(假设列表视图中的项目内容是文本):


在这里发布你的聊天信息课程。另外请注意:你希望人们花时间帮助你解决问题。所以你至少应该愿意花点时间
ChatMessage value = (ChatMessage) listView.getItemAtPosition(position);
@Override
public Object getItem(int i) {
    return items.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}
String value = (String) listView.getItemAtPosition(position);
String value = listView.getItemAtPosition(position).toString();