我正在编程一个由URL下载文件的Android应用程序。为此,我需要通过Extra_message将链接从一个活动发送到另一项活动。然后,应使用setText((更改EDITTEXT,但是EditText仍然为空。我的代码:
EditText torul = findViewById(R.id.url);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
torul.setText(message);
在回答以下操作之前:
torul.setText(message, TextView.BufferType.EDITABLE);
尝试过它,不起作用。
我如何添加extra_message:
hl.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String url = String.valueOf(((TextView) view).getText());
start(url);
}
});
private void start(String url) {
Intent copy = new Intent(this, MainActivity.class);
copy.putExtra(EXTRA_MESSAGE, url);
startActivity(copy);
}
问题是在onCreate((方法中调用setText((,这是创建活动时第一个调用的方法。设置文本应在onResume((方法中完成。这解决了问题。
而不是:
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
在第二个活动中使用此方法:
String message = getIntent().getExtras().getString(MainActivity.EXTRA_MESSAGE);
我认为这是问题:
Intent copy = new Intent(this, MainActivity.class);
您必须提供第二个活动的上下文,因此应该是:
Intent copy = new Intent(MainActivity.this, YourSecondActivity.class);