java.lang.ClassCastException:无法将java.lang.String强制转换为com.parse.ParseUser

冷淡619

该应用程序的快速概览:用户从列表中选择一个朋友,该列表显示在微调器中。键入消息后,用户单击“发送”按钮。这是应用程序崩溃的地方。

这是logcat的相关输出:

java.lang.ClassCastException:无法将com.teamtreehouse.ribbit.SMSActivity.createMessage(SMSActivity.java:113)的com.teamtreehouse.ribbit.SMSActivity $ 1.onClick(SMSActivity)的com.parse.ParseUser强制转换为com.parse.ParseUser .java:49)

这是相关代码:

ParseUser RecipientName = (ParseUser)friendsList.getSelectedItem();

// some other code

ParseObject message = new ParseObject(ParseConstants.CLASS_SMS);
message.put(ParseConstants.KEY_SENDER_NAME, RecipientName.getCurrentUser().getUsername());
//some other code

有任何想法吗?

完整代码的完整性:

public class SMSActivity extends Activity {
   protected ParseRelation<ParseUser> mFriendsRelation;
   protected ParseUser mCurrentUser;
   protected List<ParseUser> mFriends;
   protected Button sendButton;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sms);
}

public void onResume() {
    super.onResume();

    sendButton = (Button)findViewById(R.id.send_message_button);

    sendButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            ParseObject message = createMessage();
            if (message == null) {
                AlertDialog.Builder builder = new AlertDialog.Builder(SMSActivity.this);
                builder.setMessage(R.string.error_sending_file).
                setTitle(R.string.general_error).setPositiveButton(android.R.string.ok, null);
                AlertDialog dialog = builder.create();
                dialog.show();
            }
            else {
                send(message);
            }
            finish();
        }
    });

    mCurrentUser = ParseUser.getCurrentUser();
    mFriendsRelation = mCurrentUser.getRelation(ParseConstants.KEY_FRIENDS_RELATION);

    //get a list of all the friends of the user
    ParseQuery<ParseUser> query = mFriendsRelation.getQuery();
    query.addAscendingOrder(ParseConstants.KEY_USERNAME);
    query.findInBackground(new FindCallback<ParseUser>() {
        @Override
        public void done(List<ParseUser> friends, ParseException e) {


            if (e == null) {
                mFriends = friends;

                String[] usernames = new String[mFriends.size()];
                int i = 0;
                for (ParseUser user : mFriends) {
                    usernames[i] = user.getUsername();
                    i++;
                }

                //attach the friendlist to the spinner
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                        SMSActivity.this,
                        android.R.layout.simple_spinner_dropdown_item,
                        usernames);

                Spinner friendsList = (Spinner) findViewById(R.id.friends_list);
                friendsList.setAdapter(adapter);



            } else {
                AlertDialog.Builder builder = new AlertDialog.Builder(SMSActivity.this);
                builder.setMessage(e.getMessage())
                        .setTitle(R.string.error_title)
                        .setPositiveButton(android.R.string.ok, null);
                AlertDialog dialog = builder.create();
                dialog.show();
            }

        }
    });
}

protected ParseObject createMessage() {
    EditText messageView = (EditText)findViewById(R.id.message_body);
    String messageContent = messageView.getText().toString();

    Spinner friendsList = (Spinner) findViewById(R.id.friends_list);

    ParseUser RecipientName = (ParseUser)friendsList.getSelectedItem();




    ParseObject message = new ParseObject(ParseConstants.CLASS_SMS);
    message.put(ParseConstants.KEY_SENDER_ID, ParseUser.getCurrentUser().getObjectId());
    message.put(ParseConstants.KEY_SENDER_NAME, RecipientName.getCurrentUser().getUsername());
    message.put(ParseConstants.KEY_RECIPIENT_IDS,
            ((ParseUser) friendsList.getSelectedItem()).getObjectId());
    message.put(ParseConstants.KEY_SMS, messageContent);

    return message;
}

protected void send(ParseObject message) {
    message.saveInBackground(new SaveCallback() {
        @Override
        public void done(ParseException e) {
            if (e == null) {
                //success
                Toast.makeText(SMSActivity.this, R.string.success_message,Toast.LENGTH_SHORT);
            }

            else {
                AlertDialog.Builder builder = new AlertDialog.Builder(SMSActivity.this);
                builder.setMessage(e.getMessage())
                        .setTitle(R.string.error_title)
                        .setPositiveButton(android.R.string.ok, null);
                AlertDialog dialog = builder.create();
                dialog.show();
            }


        }
    });

}

}

SRB禁令

创建一个Map <String,ParseUser> map = new HashMap<String,ParseUser>()...在这里您可以填写这张地图。

for (ParseUser user : mFriends) {
                    usernames[i] = user.getUsername();
                    map.put(user.getUsername(),user);
                    i++;
                }

现在得到它像:

ParseUser RecipientName = map.get(friendsList.getSelectedItem());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

parse.com java.lang.ClassCastException:无法将java.util.HashMap强制转换为org.json.JSONObject

来自分类Dev

JMockit-java.lang.ClassCastException:无法将java.lang.String强制转换为Organization

来自分类Dev

java.lang.ClassCastException:无法将java.lang.String强制转换为[C

来自分类Dev

java.lang.ClassCastException:无法将Z强制转换为java.lang.String

来自分类Dev

从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

来自分类Dev

java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

来自分类Dev

java.lang.ClassCastException:无法将java.util.HashMap强制转换为java.lang.String

来自分类Dev

java.lang.ClassCastException:使用Univocity时无法将java.util.Date强制转换为java.lang.String

来自分类Dev

原因:java.lang.ClassCastException:无法将java.lang.Class强制转换为java.lang.reflect.ParameterizedType

来自分类Dev

休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

来自分类Dev

java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

来自分类Dev

休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

来自分类Dev

原因:java.lang.ClassCastException:无法将java.lang.Class强制转换为java.lang.reflect.ParameterizedType

来自分类Dev

java.lang.ClassCastException:无法将java.util.HashSet强制转换为Custom类

来自分类Dev

java.lang.ClassCastException:com.model.Image无法转换为java.lang.String

来自分类Dev

如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

来自分类Dev

如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

来自分类Dev

Android HashMap java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.util.Map $ Entry

来自分类Dev

java.lang.ClassCastException:无法将java.util.Arrays $ ArrayList强制转换为java.lang.Integer

来自分类Dev

JRException:java.lang.ClassCastException:java.lang.String无法转换为java.lang.Boolean

来自分类Dev

java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

来自分类Dev

java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

来自分类Dev

Hibernate HQL强制转换java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Long

来自分类Dev

sharedPref.getInt:无法将java.lang.String强制转换为java.lang.Integer

来自分类Dev

无法将解析java.lang.String强制转换为java.lang.Boolean

来自分类Dev

java.lang.ClassCastException:[无法将B强制转换为play.twirl.api.Html

来自分类Dev

java.lang.ClassCastException:无法将JedisConnectionFactory强制转换为ConnectionFactory

来自分类Dev

java.lang.ClassCastException:无法将DTOObject强制转换为DTOObject

来自分类Dev

无法将Java.lang.classcastexception linearlayout.layoutParams强制转换为framelayout.layoutparams

Related 相关文章

  1. 1

    parse.com java.lang.ClassCastException:无法将java.util.HashMap强制转换为org.json.JSONObject

  2. 2

    JMockit-java.lang.ClassCastException:无法将java.lang.String强制转换为Organization

  3. 3

    java.lang.ClassCastException:无法将java.lang.String强制转换为[C

  4. 4

    java.lang.ClassCastException:无法将Z强制转换为java.lang.String

  5. 5

    从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

  6. 6

    java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

  7. 7

    java.lang.ClassCastException:无法将java.util.HashMap强制转换为java.lang.String

  8. 8

    java.lang.ClassCastException:使用Univocity时无法将java.util.Date强制转换为java.lang.String

  9. 9

    原因:java.lang.ClassCastException:无法将java.lang.Class强制转换为java.lang.reflect.ParameterizedType

  10. 10

    休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

  11. 11

    java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

  12. 12

    休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

  13. 13

    原因:java.lang.ClassCastException:无法将java.lang.Class强制转换为java.lang.reflect.ParameterizedType

  14. 14

    java.lang.ClassCastException:无法将java.util.HashSet强制转换为Custom类

  15. 15

    java.lang.ClassCastException:com.model.Image无法转换为java.lang.String

  16. 16

    如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

  17. 17

    如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

  18. 18

    Android HashMap java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.util.Map $ Entry

  19. 19

    java.lang.ClassCastException:无法将java.util.Arrays $ ArrayList强制转换为java.lang.Integer

  20. 20

    JRException:java.lang.ClassCastException:java.lang.String无法转换为java.lang.Boolean

  21. 21

    java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

  22. 22

    java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

  23. 23

    Hibernate HQL强制转换java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Long

  24. 24

    sharedPref.getInt:无法将java.lang.String强制转换为java.lang.Integer

  25. 25

    无法将解析java.lang.String强制转换为java.lang.Boolean

  26. 26

    java.lang.ClassCastException:[无法将B强制转换为play.twirl.api.Html

  27. 27

    java.lang.ClassCastException:无法将JedisConnectionFactory强制转换为ConnectionFactory

  28. 28

    java.lang.ClassCastException:无法将DTOObject强制转换为DTOObject

  29. 29

    无法将Java.lang.classcastexception linearlayout.layoutParams强制转换为framelayout.layoutparams

热门标签

归档