Android intent.getStringExtra始终为;空";

Android intent.getStringExtra始终为;空";,android,android-intent,null,android-intentservice,extra,Android,Android Intent,Null,Android Intentservice,Extra,以下是将字符串添加到intent.putExtra的方式: final ListView listView = findViewById(R.id.userListView); final ArrayList<String> usernames = new ArrayList<>(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @

以下是将字符串添加到intent.putExtra的方式:

    final ListView listView = findViewById(R.id.userListView);
    final ArrayList<String> usernames = new ArrayList<>();

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent intent = new Intent(getApplicationContext(), UserFeedActivity.class);
            String username = usernames.get(i);
            intent.putExtra("username", username.toString() );
            Log.i("test","username: "+username);
            startActivity(intent);

        }
    });
日志。我给了我:“…I/test2:username:null”

我也试过了

    Bundle bundleEx = intent.getExtras();
    Log.i("trdt3","extras: "+bundleEx);
日志。我给了我:“…I/test3:extras:null”


我做错什么了吗?

你在其他活动中创造了一个全新的意图,因此没有额外的内容。在新活动中,您需要调用
getIntent()
,如下所示

Intent intent = getIntent(); // don't use 'new Intent()' here
String username = intent.getStringExtra("username");
Log.i("test3","username: "+username);
请注意,调用
getStringExtra
仅在内部调用
getExtras()
,然后调用
getString(…)
,因此这与使用
getIntent().getExtras().getString(…)
相同

Intent intent = getIntent(); // don't use 'new Intent()' here
String username = intent.getStringExtra("username");
Log.i("test3","username: "+username);