我想在登录活动(Instagram API)后打开一个新活动。 Login API运行良好,但我只是复制/粘贴代码而不是真正得到的结果。
所以这是我的onCreate方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
setWidgetReference();
bindEventHandlers();
mApp = new InstagramApp(this, Constants.CLIENT_ID,
Constants.CLIENT_SECRET, Constants.CALLBACK_URL);
mApp.setListener(new InstagramApp.OAuthAuthenticationListener() {
@Override
public void onSuccess() {
// tvSummary.setText("Connected as " + mApp.getUserName());
btnConnect.setText("Disconnect");
//My Intent starts here
Intent myIntent = new Intent(Login.this, MainActivity.class);
myIntent.putExtra("username", InstagramApp.TAG_USERNAME);
Login.this.startActivity(myIntent);
finish();
//userInfoHashmap = mApp.
mApp.fetchUserName(handler);
}
@Override
public void onFail(String error) {
Toast.makeText(Login.this, error, Toast.LENGTH_SHORT).show();
}
});
if (mApp.hasAccessToken()) {
// tvSummary.setText("Connected as " + mApp.getUserName());
btnConnect.setText("Disconnect");
llAfterLoginView.setVisibility(View.VISIBLE);
mApp.fetchUserName(handler);
}
}
我也试着在我的MainActivity中捕获用户名(onCreate):
//INTENT
TextView tvUserName = findViewById(R.id.tvUserName);
Intent intent = getIntent();
String username = intent.getStringExtra("username");
tvUserName.setText(username);
得到错误。
NullPointerException: Attempt to invoke virtual method 'void TextView.setText(CharSequence)' on a null object reference
这意味着你试图在setText(CharSequence)
null
上调用TextView
。
如果你查看你的代码,你可以看到你在这里调用它。
//INTENT
TextView tvUserName = findViewById(R.id.tvUserName);
Intent intent = getIntent();
String username = intent.getStringExtra("username");
tvUserName.setText(username); // <--- this line is your issue
现在,问题是为什么tvUserName
null
?也许你的布局不包括R.id.tvUserName
,这很难说清楚。
但这应该可以帮助你找出问题所在。