0

这是我的代码。

在我的主要 .java 文件中。

public void showQuiz (View view){
        Username = (EditText) findViewById(R.id.Username);
        String userId = Username.getText().toString();
        String deviceId = Secure.getString(this.getContentResolver(),
                Secure.ANDROID_ID);
       //this intent is used to open other activity wich contains another webView
         Intent intent = new Intent(this, Quiz.class);

         Bundle bun = new Bundle();
         bun.putString("userid",userId);
         bun.putString("deviceid", deviceId);

         intent.putExtras(bun);
         startActivity(intent); 
    }

这就是 Activity 的 .java 文件中的内容。

package com.earn.egpt;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class Quiz extends Activity {
    private static final String url = "http://www.m.s-w-family.com/?subid=";
    private static final String url2 = "&deid=";

     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_quiz);
            Bundle extras=getIntent().getExtras();
            String userId=extras.getString("userId");
            String deviceId=extras.getString("deviceId");
         WebView webview;
        webview = (WebView) findViewById(R.id.webView1);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl(url+userId+url2+deviceId);
        }
    }

出于某种原因,它将字符串作为空值传递,但我不知道为什么。我对这种编程非常陌生,所以我什至不知道在哪里。我查看了与我类似的其他问题并尝试了修复它们,但值仍然为空。

4

2 回答 2

5

注意变量的大小写。您正在插入“userid”并检索“userId”。

于 2012-10-26T23:25:24.883 回答
2

您不小心使用了额外的 Bundle。而是将附加内容直接放入 Intent 中:

intent.putExtra("userid", userId);
intent.putExtra("deviceid", deviceId);

startActivity(intent); 

现在,您的getString()方法将返回您在测验中想要的内容。

于 2012-10-26T22:33:01.463 回答