传递意图不能得到额外的();

时间:2014-10-31 13:25:49

标签: android android-intent android-activity android-studio

嗨我无法登录已经在我的主要活动的网页中我已经通过了另一项活动,但我无法获得提取。我该如何解决呢?

这是我的主要活动 公共类ViewActivity扩展了Activity {

private EditText mTextUserName;
private EditText mTextPassword;
public String user_name;
public String pass_word;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTextUserName = (EditText) findViewById(R.id.textUserName);
    mTextPassword = (EditText) findViewById(R.id.textPassword);



    final Button mButtonLogin = (Button) findViewById(R.id.buttonLogin);
    mButtonLogin.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            user_name = mTextUserName.getText().toString();
            pass_word = mTextPassword.getText().toString();

            Intent goToNextActivity = new Intent(getApplicationContext(), ViewActivity.class);
            goToNextActivity.putExtra("username", user_name);
            goToNextActivity.putExtra("username", pass_word);

            startActivity(goToNextActivity);


        }
    });

并在此处查看活动

private WebView webView;

public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.view);
    webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setUseWideViewPort(true);
    webView.setScrollbarFadingEnabled(false);
    webView.getSettings().setDefaultFontSize(20);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new MyWebViewClient());




    webView.loadUrl("http://something.com");



}

private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
        goToNextActivity.getExtras();
        return true;

    }
}

它正在加载网页但未登录

4 个答案:

答案 0 :(得分:3)

Intent extras = getIntent().getExtras();
String newString;
if(extras == null) {
    newString= null;
} else {
    newString= extras.getString("username");
}

对于用户名和密码两个值,您给出相同的键值...请更改并尝试。

答案 1 :(得分:1)

使用下面的代码从意图中获取数据: -

Intent intent = getIntent();
String username= intent.getStringExtra("username");

shouldOverrideUrlLoading方法中编写上述代码。

答案 2 :(得分:1)

下面

Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);

您正在构建一个全新的Intent您想要的。您想使用启动Intent的{​​{1}}。

因此,您要使用

Activity

因为我们可以看到Intent i = getIntent();

from the Activity Docs
  

返回开始此活动的意图。

然后获取getIntent(),如果它们不是extras

null

你需要if (i.getExtras() != null) { String userName = i.getStringExtra("username"); String password = i.getStringExtra("password"); // you have a typo in your passing Intent } 这样才能更好/更容易地在Activity Context而不是你的内心阶层这样做,除非有理由你不能在那里做。< / p>

答案 3 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

有两种方式将一项活动传递给另一项活动。

1.将数据添加到意图中。

如何放:

Intent goToNextActivity = new Intent();
goToNextActivity.putExtra("username", user_name);
goToNextActivity.putExtra("password", pass_word);

如何获得:

String username = getIntent().getStringExtra("username");
String password = getIntent().getStringExtra("password");

2.添加数据以捆绑并将包添加到意图。

如何放:

Intent goToNextActivity = new Intent();
Bundle bundle = new Bundle();
bundle.putString("username", user_name);
bundle.putString("password", pass_word);
goToNextActivity.putExtras(bundle);

如何获得:

String username = getIntent().getExtras().getString("username");
String password = getIntent().getExtras().getString("password");