【问题标题】:Android: passing string into ArrayAdapterAndroid:将字符串传递给 ArrayAdapter
【发布时间】:2018-05-15 23:44:51
【问题描述】:

我有一个微调器,我正在动态加载带有消息的微调器 我这样做如下

protected List<Message> messages = null;
ArrayAdapter <Message> arrayadapter = new ArrayAdapter<Message>( activity,android.R.layout.simple_spinner_item,messages);               

                       spinner1.setAdapter(arrayadapter); 

我收到如下消息

public List<Message> getMessages(String type) throws Exception{
    HttpClient client = new HttpClient();
    GetMethod get = null;
    Message message = null;
    List<Message> messages = new ArrayList<Message>();
    try {
        get = new GetMethod("http://" + Constants.CLOUD_SERVER_URL + Constants.getMessages + "/"+type);
        int statusCode = client.executeMethod(get);
        if(statusCode == 200){
            Log.d(TAG, "Successfully posted the comments");
            Utils utils = new Utils();
            Document doc = utils.formatInputStream(get.getResponseBodyAsStream());
            NodeList listMessages = doc.getElementsByTagName("message");
            int totalMessage = listMessages.getLength();
            for (int s = 0; s < totalMessage; s++) {
                Node messageNode = listMessages.item(s);
                if (messageNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element messageElement = (Element) messageNode;
                    message = new Message();
                    message.setId(utils.getTagValue(messageElement, "id"));
                    message.setMessage(utils.getTagValue(messageElement, "question"));
                    messages.add(message);

                    Log.d(TAG, "Id - " + message.getId() + " Message - " + message.getMessage());
                }
            }
        }else{
            Log.d(TAG, "Either server has problem or not reachable at this time");
            throw new Exception("Server Issue Status code return by server is " + statusCode);
        }
        Log.d(TAG, "recommend ----------> Step 15");
        Log.d(TAG, "recommend ----------> Step 20");
    }finally{
        get.releaseConnection();
        get = null;
    }
    return messages;
}

我的问题是我在微调器中获取消息的 id 而不是消息文本 如何将该消息转换为字符串并将其传递给适配器或 最后我在微调器中获得文本的任何其他方式。

【问题讨论】:

  • 你向“消息”传递了什么?
  • @AmeerMoaaviah 更新了我的问题,请看一下

标签: android android-arrayadapter


【解决方案1】:

一种方法是覆盖Message 类的toString() 方法并返回消息值,如下所示:

@Override
public String toString() {
    return message; //where message is member variable holding message text
}

【讨论】:

  • itz 不允许我这样做...我编辑了我的问题..请看一下
  • @njzk2 在我的问题中我有一个返回消息的方法我如何转换成字符串?
  • 您必须重写 Message 以包含 Waqas 提供的 toString 方法。否则,您如何期望 ArrayAdapter 知道您希望它在 textview 中放置什么? (替代解决方案:将字符串放入数组中)
  • @Waqas 嗨谢谢你现在工作我在我的消息 pojo 类中覆盖 toString() 我的 getter 和 setter 在那里并且 itz 工作 thxxx
  • @teekib 很高兴它有帮助:)
猜你喜欢
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 2020-04-08
  • 2016-06-01
  • 2011-08-16
相关资源
最近更新 更多