- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我直接进入问题。在 UploadNotesActivity.java
....
首先,我使用 intent 选择一个 .pdf 文件
chooseNotesBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Create intent to Open Image applications like Gallery, Google Photos
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
// Start the Intent
startActivityForResult(intent, RESULT_LOAD_FILE);
}
});
然后,在 `onActivityResult 中,我保存所选文件的文件路径。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_FILE && resultCode == RESULT_OK && data != null) {
data.putExtra("filePath", data.getData().getPath());
choosenFile.setText(data.getStringExtra("filePath"));
} else {
Toast.makeText(this, "Error in choosing file",
Toast.LENGTH_LONG).show();
}
}
点击上传
按钮开始上传文件
uploadNotesBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onUploadButtonClick();
}
});
onUploadButtonClick()
private void onUploadButtonClick() {
final String serverUrlString = "http://XXXX/uploadNotes.php";
if (getIntent().getStringExtra("filePath").isEmpty()) {
Log.d(TAG, "filePath is null");
} else {
Log.d(TAG, getIntent().getStringExtra("filePath"));
}
final String fileToUploadPath = getIntent().getStringExtra("filePath");
final String paramNameString = "uploaded_file";
String fileName[] = fileToUploadPath.split("/");
final MultipartUploadRequest request =
new MultipartUploadRequest(this, UUID.randomUUID().toString(), serverUrlString);
request.addFileToUpload(fileToUploadPath, paramNameString,
fileName[fileName.length-1]+".pdf", ContentType.APPLICATION_OCTET_STREAM);
request.setNotificationConfig(R.drawable.ic_launcher,
getString(R.string.app_name),
getString(R.string.uploading),
getString(R.string.upload_success),
getString(R.string.upload_error),
false);
// if you comment the following line, the system default user-agent will be used
request.setCustomUserAgent("UploadServiceDemo/1.0");
// set the intent to perform when the user taps on the upload notification.
// currently tested only with intents that launches an activity
// if you comment this line, no action will be performed when the user taps
// on the notification
// request.setNotificationClickIntent(new Intent(this, MainActivity.class));
// set the maximum number of automatic upload retries on error
request.setMaxRetries(2);
try {
request.startUpload();
} catch (Exception exc) {
Toast toast = Toast.makeText(getApplicationContext(), "Malformed upload request. " + exc.getLocalizedMessage(), Toast.LENGTH_LONG);
toast.show();
}
}
但问题是,它会抛出空指针异常,我不太明白原因。
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.isEmpty()' on a null object reference
at com.fyp.mycyberlaw.Lecturer.UploadNotesActivity.onUploadButtonClick(UploadNotesActivity.java:73)
at com.fyp.mycyberlaw.Lecturer.UploadNotesActivity.access$100(UploadNotesActivity.java:19)
at com.fyp.mycyberlaw.Lecturer.UploadNotesActivity$2.onClick(UploadNotesActivity.java:53)
第 73 行:if (getIntent().getStringExtra("filePath").isEmpty())
第 19 行:public class UploadNotesActivity extends Activity
第 53 行:onUploadButtonClick();
第 73 行的 filePath 似乎是空的,我将 filePath 保存到 bundle (?) 的方式不正确。如何从 onActivityResult
获取文件路径?这是 .java类,以防万一。先感谢您。真的需要你的帮助。
最佳答案
Intent
对象用于在 Activity 之间传递参数。您收到的文件路径必须保留在您的 Activity 中。
在您的 Activity 中创建一个 filePath
变量,在 onActivityResult
上设置它并在 onUploadButtonClick
上读取它。
请注意,必须在 onSaveInstanceState
回调期间保存变量值并在 onCreate
中恢复它,因为每次您打开手机时, Activity 都会被销毁并重新创建。检查此以获取更多信息:Recreating an Activity
关于java - Android:无法使用 .getStringExtra 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33687327/
intent.putExtra() 和 intent.getStringExtra() 不起作用。 getStringExtra 返回 null 发送端: Intent in
和getIntent().getIntExtra一样,getStringExtra是否有一个默认值,如果传递的字符串为空,可以使用该默认值? 我有一个方法可以做到这一点,但想知道是否有现成的方法可以实
主要 Activity : Intent intent = new Intent(Main.this, Secondary.class); intent.putExtra("name",value);
这是我的代码,第一个 Activity : final String countryName = name.getText().toString(); wikiButton.setText("WIKI
我正在尝试编写一个简单的应用程序,它会在按下按钮时打开一个新 Activity 。然后用户将能够在文本字段中输入一些文本,按下 Enter 按钮应该将他们返回到 TextView 应该显示的文本的主要
我尝试通过 Intent 向函数发送额外的字符串数据,但我收到的是空值。 这里是 intent.put: private void takePicFromGallery(String nameOfB
我试图将一些字符串从一个 Intent 传递到另一个 Intent 。但是 adt 说: Key text expected String but value was a android.text.S
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 8 年前。 //intent.putExtra(EXTRA_MESSAGE,
这个问题在这里已经有了答案: Android Intent.getStringExtra() returns null (1 个回答) 关闭去年。 当我尝试在切换 Activity 时发送带有 In
我正在使用一个 EditText 字段和一个微调器。我必须将两者的结果传递给下一个 Activity 。在这里,reqd_bloodgroup 是微调项,我使用以下方法转换为字符串: reqd_blo
我怀疑这只是一些愚蠢的错误,但我被卡住了。问题很简单:我的字符串 path 没有发送到 MainActivity。 在 FileListActivity.class 中创建 Intent intent
这个问题在这里已经有了答案: Android Intent.getStringExtra() returns null (1 个回答) 去年关闭。 我真的觉得这很奇怪,我可以获得除一个之外的其他值。这
首先,我对编码非常陌生,而且对 Firebase 的功能也很陌生。问题是,我试图通过将数字与值关联来从 firebase 获取特定值。正如我将其设计为我的第一个 Activity (Buffer2),
我有一个 fragment 和 Activity 。从 fragment 中,我通过 putExtra 将名为 day 的字符串传递给 Activity 。但是当我在 Activity 中检索时出现空
我直接进入问题。在 UploadNotesActivity.java.... 首先,我使用 intent 选择一个 .pdf 文件 chooseNotesBtn.setOnClickListener(
我是 Android 编程的初学者,我正在尝试将字符串数据的段落从 MainActivity 发送到另一个名为 Info Activity 的 Activity 。 我搜索了在 Activity 之间
我正在使用 LocalBroadcastManager 广播一个 Intent ,我想在这个 Intent 中添加一个额外的字符串。 广播代码: Intent intent = new Int
所以在 Activity A 中,我通过 Intent 将一些数据传递给 Activity B。好的,一切正常,getStringExtra 返回我所期望的。然后,我从 Activity B 将相同的
我有这个调用 Activity 的代码 Intent intent; intent=new Intent(TopicsActivity.this, Di
我知道这个问题已经被问了很多,但我不知道我哪里错了.. 所以我通过一个 Activity 发送了一些数据并从另一个 Activity 中检索它。 第一个 Activity Timber.i("Phot
我是一名优秀的程序员,十分优秀!