从parse.com检索字符串并在TextView Android中显示它

时间:2015-08-21 09:08:11

标签: java android android-intent parse-platform textview

我已将数据上传到parse.com,我正在尝试从parse.com检索数据并将其显示在textview中。

我有一个parseconstants类:

Gravity.NO_GRAVITY

我发送邮件并上传以解析

public static final String TYPE_STRING = "string"; 
public static final String KEY_FILE_TYPE = "fileType";

这两个值作为文件名和文件类型发送到parse.com。

但是当我在这里收到inboxActivity时:

String fileName = "text.txt";
        String fileType = "text";

它不会调用文本活动类,也不会显示该类。

在TextViewController中我尝试将文本显示在TextView中,如下所示:

@Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        ParseObject message = mUserBio.get(position);
        String messageType = message.getString(ParseConstants.KEY_FILE_TYPE);
        ParseFile file = message.getParseFile(ParseConstants.KEY_FILE);
        Uri fileUri = Uri.parse(file.getUrl());
        if (messageType.equals(ParseConstants.TYPE_STRING)){
            Intent intent = new Intent(getActivity(), ViewTextActivity.class);
            intent.setData(fileUri);
            startActivity(intent);
        }

1)为什么ViewtextActivity没有显示?

2)textview会显示检索到的用户生物吗?

1 个答案:

答案 0 :(得分:3)

首先,尽量避免调用这样的常量:

ParseConstants.KEY_FILE_TYPE

完全!

而是静态导入你的课程:

import static <your_package_name>.ParseConstants.*;
//now you can access your constants by calling it on its own:
String messageType = message.getString(KEY_FILE_TYPE);
  

修改

您的命名标准不符合标准(文件的实例,应该被称为与文件有关,而不是&#34;字符串&#34;)!!您正试图在TextView中显示File类型的对象,该对象无法正常工作。而是试试这个,而不是让Android Studio将其转换为CharSequence:

mDisplay.setText(string.toString());

第三,在调用ViewTextActivity时,有3种方法可以做到这一点(因为我不确定你是否使用了片段):

//if you are using a Fragment:
Intent intent = new Intent(getActivity(), ViewTextActivity.class);

//if you are using a FragmentActivity, you need to cast it:
Intent intent = new Intent((Your_Base_Activity) getActivity(), ViewTextActivity.class);

//if you are using a normal activity:
Intent intent = new Intent(Your_Activity_Name.this, ViewTextActivity.class);

就TextView显示数据而言,您的代码似乎在逻辑上是正确的。

  

编辑2

从ParseObject API,我们看到getString将从作为参数(See Here)放入的Key返回String值。

根据您的说法,您正在检查返回值是否等于单词&#34; string&#34;。这没有任何意义,因为你要输入&#34; fileType&#34;的键值。

我的建议是使用日志检查返回值是否为空:

String messageType = message.getString(KEY_FILE_TYPE);
Log.e("MessageReturned: ", "Returned-" + messageType);

或者你可以重新思考一下,应该等同于什么值,&#34; string&#34;就我所见,没有意义。

  

编辑3

因为你说为变量fileType上传的值是&#34; text&#34;你不应该这样做:

if (messageType.equals("text")){
  

编辑4

您在意图之间解析信息的方法已过时。你需要试试这个:

if (messageType.equals(ParseConstants.TYPE_STRING)){
        Intent intent = new Intent(getActivity(), ViewTextActivity.class);
        intent.putExtra("fileUri", fileUri.toString());
        startActivity(intent);
}

然后在你的其他课程中,你可以这样访问它:

Bundle extras = getIntent().getExtras(); 
Uri receivedFileUri = Uri.parse(extras.getString("fileUri"));