我无法使用putExtra检索传递给Activity的数据?

时间:2015-04-17 02:28:51

标签: android android-intent

我有一个小问题,我被卡住了。问题是我通过下面的代码传递了一个id。

Intent i = new Intent(First.this,Second.class);
i.putExtra("classification_id","3");

然而,当我尝试使用下面的代码获取参数3时,我在调试模式下检查时得到-1的结果。

if(intent.getExtras().getString("classification_id")!=null){
        classId = intent.getExtras().getString("classification_id");
    }else{
        classId = "1";
    }

实际上我想使用此参数将其设置为url以获取json数据以获取json数据。但这是正确的方法吗?或者将String int设置为url是不好的做法?防爆。 "www.test.test/myid?="+classId

1 个答案:

答案 0 :(得分:2)

意图从何而来?有getIntent()或Intent来自onNewIntent()

等方法

此外,我认为这更短

if(getIntent().hasExtra("classification_id")) {
    String classId = getIntent().getStringExtra("classification_id");
}

至于将String插入url,如果有很多参数,你将不堪重负(顺便说一下,我认为这是一个错误的格式:www.example.test / myid?= classId也许这就是你想要的www.example。 com / test?myid = classId)。所以我们可以做到

private static final String URL="https://www.example.com";
private static final String PATH = "test";
private static final String PARAM_MYID = "myid";

public static String buildMyUrl(String id){
    Uri.Builder b = Uri.parse(URL).buildUpon();
    b.path(PATH);   
    b.appendQueryParameter(PARAM_MYID, id);
    b.build();
    return b.toString();
}