我正在尝试从editText框中获取数据并在按钮上单击打开该URL。为此,我必须将数据从一个意图发送到另一个意图。为此,我提到了this和this但无法发送数据..我正在尝试将数据从主视图发送到网络视图活动..
MainActivity.Java
public class MainActivity extends Activity {
Button b;
WebView mWebVIew2;
EditText mEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.button1);
mEdit = (EditText) findViewById(R.id.editText1);
final String s = mEdit.getText().toString();
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), mEdit.getText(), Toast.LENGTH_LONG).show();
Intent i = new Intent(getApplicationContext(), WebViewActivity.class);
i.putExtra("mSite", s);
startActivityForResult(i, 0);
}
});
}
}
WebViewActivity.java
public class WebViewActivity extends Activity {
private WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webv);
mWebView = (WebView) findViewById(R.id.webView1);
Intent mIntent = getIntent();
String y = mIntent.getExtras().getString("mSite");
Toast.makeText(getApplicationContext(), y, Toast.LENGTH_LONG).show();
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(y);
}
}
答案 0 :(得分:1)
您将字符串s
定义为onCreate中的mEdit.getText。单击按钮时,它不会反映editText的内容。
而是在onClick方法中获取s
的值。
进一步详细说明:在Java中,String对象是不可变的。指针可以指向不同的引用,但引用不能改变(即静音)。
在这种情况下,这意味着您的String永远不会反映 EditText的值,而只能在给定时间复制一个副本。在此特定方案中,String包含启动时editText的内容(在onCreate中),其中很可能包含任何内容或默认值。