我正在学习编码,这是我的第一次尝试(第一天),我试图做一些简单的事情,但我无法使它正常工作。
我有一个主要的活动,即用户在文本视图上输入数据,还有一个将数据发送到字符串并启动另一个活动的按钮。
在另一个活动中,我有一个URI,我想要做的是获取部分链接,并在其末尾添加字符串(用户输入)并启动它。
“ www.link.com/ +用户输入的内容(应在字符串上)”
这是mi主要活动java:
import android.content.Intent;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
String link;
EditText linkInput;
Button button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linkInput= (EditText) findViewById(R.id.NumberImput);
button1= (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onClick(View v) {
link= linkinput.getText().toString();
startActivity(new Intent(MainActivity.this, ToBrowseract.class));
}
});
}
}
这是我的第二个活动java:
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import static android.net.Uri.parse;
public class ToBrowseract extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
Uri uri;
{
uri = parse("https://url.net/" + getString("link"));
}
private String getString(String link) {
return link;
}
}
xml工作正常。大部分内容是我通过阅读一些教程得到的,但是android studio会自动添加一些内容或在检查错误时添加一些内容。 我不知道它在哪里停止工作,如何检查用户输入是否输入字符串?而且我确定URI不能像我写的那样起作用。
谢谢。
答案 0 :(得分:1)
要将链接传递到下一个Activity
,您想使用Bundle
。这样,您就可以传递数据并从Intent
中读取数据。
在您的onClick
中,创建一个Bundle
,并将链接作为String
放入。它使用键/值对,所以我们说"link"
是我们的链接。
然后,当您致电startActivity
时,可以传递该Bundle
。
@Override
public void onClick(View v) {
String link = linkinput.getText().toString();
// Storing the link into the bundle to pass to the next Activity.
Bundle bundle = new Bundle();
bundle.putString("link", link);
// Creating an Intent for which Activity to launch.
Intent intent = new Intent((MainActivity.this, ToBrowseract.class);
// Starting the new Activity with the Bundle with the link.
startActivity(intent, bundle);
}
现在,您想在ToBrowseract
的{{1}}中进行阅读。您可以获取Activity
,然后可以获取任何我们要求的Intent
Intent
答案 1 :(得分:0)
我的第一个活动是通过用户输入“链接”作为额外的意图。为此,请如下更改startActivity()代码:
startActivity(new Intent(MainActivity.this, ToBrowseract.class).putExtra("myUri", link));
在第二个活动中,获得如下链接:
Bundle bundle = getIntent().getExtras();
String link = bundle.getString("link");
Uri uri = parse("https://url.net/" + link);
答案 2 :(得分:0)
您有2个不同的活动,并且您将字符串保存到第一个活动的链接变量中,而没有将此数据传递到第二个活动中。
在android中,您可以通过以下方式将数据添加到意图中,从而在2个不同的活动之间传递数据:
您的第一次活动:
WorkManager
在您的第二次活动中检索该数据:
Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("yourData", link);
startActivity(intent);