-1
アクティビティ名として文字列を含むスナックバーからアクティビティを開始しようとしています。アクティビティ名を変数としてアクティビティを開始する
スナックバーコードは次のとおりです。
private void showSnackbar(View view, String massgae, String action, final String intent) {
Snackbar.make(view, massgae, Snackbar.LENGTH_LONG)
.setAction(action, new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = null;
try {
myIntent = new Intent(context, Class.forName(intent));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
startActivity(myIntent);
}
})
.setActionTextColor(Color.WHITE)
.setDuration(5000)
.show();
}
、私はこれでそれを呼んでいる:
のjava.lang.NullPointerExceptionを:それは私を得るロードすると
showSnackbar(llMain, getResources().getString(R.string.sbUserNotFound), getResources().getString(R.string.sbRegister), "Register.class");
:空のオブジェクト参照で仮想メソッド 'java.lang.String android.content.Intent.toString()'を呼び出そうとしました。
助けが必要ですか?
イムはかなり新しいアンドロイド開発とideはClass.fornameを提案しました。 より優れたソリューションですか? –
@NirGolan文字列インテントを渡すのではなく、Class変数を渡してインテントコンストラクタに直接渡します。ありがとう、 –
私はあなたの答えを赤くして理解しています。文字列インテントの代わりにクラスインテント。今働いている。ありがとう –