【问题标题】:Incompatible types: Object cannot be converted to ParseObject不兼容的类型:Object 无法转换为 ParseObject
【发布时间】:2015-05-11 02:33:47
【问题描述】:

我在使用 Parse 的应用程序中遇到了一些麻烦。为了使用解析对象填充 LitsView,我使用了以下适配器类。问题是,我在

处遇到错误
ParseObject statusObject = mStatus.get(position);

错误内容为:Error:(44, 47) error: incompatible types: Object cannot be convert to ParseObject

这里发生了什么?

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.parse.ParseObject;

import java.util.List;

public class StatusAdapter extends ArrayAdapter {
protected Context mContext;
protected List mStatus;

public StatusAdapter(Context context, List status) {
    super(context, R.layout.homepage, status);
    mContext = context;
    mStatus = status;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    if (convertView == null) {
        convertView = LayoutInflater.from(mContext).inflate(
                R.layout.homepage, null);
        holder = new ViewHolder();
        holder.usernameHomepage = (TextView) convertView
                .findViewById(R.id.usernameHP);
        holder.statusHomepage = (TextView) convertView
                .findViewById(R.id.statusHP);

        convertView.setTag(holder);
    } else {

        holder = (ViewHolder) convertView.getTag();

    }

    ParseObject statusObject = mStatus.get(position);

    // title
    String username = statusObject.getString("user");
    holder.usernameHomepage.setText(username);

    // content
    String status = statusObject.getString("newStatus");
    holder.statusHomepage.setText(status);

    return convertView;
}

public static class ViewHolder {
    TextView usernameHomepage;
    TextView statusHomepage;

}

}

【问题讨论】:

  • 检查 mStatus.get(position) 返回的内容
  • 您遇到此问题是因为get 方法默认返回Object,因此您应该转换结果或使用List 的通用版本。请检查我的答案。

标签: java android parsing android-listview


【解决方案1】:

您没有使用通用列表 (List<E>)。要么你应该投对象:

ParseObject statusObject = (ParseObject) mStatus.get(position);

或使用如下列表: protected List<ParseObject> mStatus;

那么你就不需要种姓了。您还需要修改构造函数:

public StatusAdapter(Context context, List<ParseObject> status) {
    super(context, R.layout.homepage, status);
    mContext = context;
    mStatus = status;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 2017-10-03
    • 1970-01-01
    • 2021-12-20
    • 2016-10-17
    • 2017-03-29
    • 1970-01-01
    相关资源
    最近更新 更多