2014-02-18 44 views
0

我正在我的应用中实现聊天泡泡。在主类中,我在下面提到的私有类“mylistadapter”的setText行中出现错误。我在实现Android聊天泡泡时遇到错误

tekst.setText(bubbleGreen.getMessages()); <-- line I am getting error 

错误消息是: 在类型TextView的方法的setText(CharSequence的)是不适用的参数(ArrayList的)

在我已经使用ArrayListgetMessages气泡类。我不知道如何解决这个错误,同时使用ArrayList。任何提示将非常感激。谢谢。

气泡类:

import java.util.ArrayList; 
public class Bubbles { 

private ArrayList<String> messages; 
private int ikonId; 

public Bubbles(ArrayList<String> messages, int ikonId){ 
    super(); 
    this.messages = messages; 
    this.ikonId=ikonId; 
} 

public ArrayList<String> getMessages(){ 
    return messages; 
} 

public int getIkonId(){ 
    return ikonId; 
} 


} 

主类:

private void setListAdapter() { 
    // TODO Auto-generated method stub 
    ArrayAdapter<Bubbles> adapter = new MyListAdapter(); 
    ListView list = (ListView) findViewById(R.id.listMessages); 
    list.setAdapter(adapter); 

} 

private class MyListAdapter extends ArrayAdapter<Bubbles> { 
    public MyListAdapter() { 
     super(XMPPChatDemoActivity.this, R.layout.list_row_layout_even, bubbles); 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     View itemView = convertView; 
     if (itemView == null) { 
      itemView = getLayoutInflater().inflate(
        R.layout.list_row_layout_even, parent, false); 
     } 


     Bubbles bubbleGreen = bubbles.get(position); 


     ImageView imageView = (ImageView) itemView 
       .findViewById(R.id.even_bubble); 
     imageView.setImageResource(bubbleGreen.getIkonId()); 

     TextView tekst = (TextView) itemView.findViewById(R.id.text01); 
     <<<tekst.setText(bubbleGreen.getMessages());>>> 

     return itemView; 
    } 
} 

private void bubblesList() { 
    // TODO Auto-generated method stub 
    bubbles.add(new Bubbles(messages, R.drawable.bubble_green)); 
} 
+0

你的适配器应该由字符串而不是气泡组成,数据集应该是bubbles.getMessages(),或者你应该改变你的Bubbles类的概念。从一个消息容器它将是一个消息,然后它应该工作 – Blackbelt

+0

你好,我现在有两个不同的建议。检出他们两个。谢谢你的建议 – Sindre

回答

2

取代

tekst.setText(bubbleGreen.getMessages()); 

tekst.setText(bubbleGreen.getMessages().get(position)); 

和错误本身显示问题是什么。

+2

这是错误的。适配器由气泡组成。可能会发生这样的情况:数据集包含更多的消息的ArratList元素,并且它将显示更少的元素或更多,并且应用程序将崩溃IndexOutBoundException – Blackbelt

+0

你好,我现在有两个不同的建议。检出他们两个。谢谢你们的建议:)我不太擅长Arraylist,所以尽管收到错误信息,无法修复它.. – Sindre

+0

@blackbelt感谢您的评论...并且正如你所说的OP应该考虑重新设计他的代码。 .. –