我已将数据上传到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会显示检索到的用户生物吗?
答案 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"));