だから、私は基本的にある種のログインフォームをいじって、今後のアクティビティでユーザー名を使ってカスタマイズされた挨拶をしようとしています。コードは問題なくコンパイルされますが、ログイン ボタンをクリックするとすぐにアプリがクラッシュします。カスタマイズされた hello を実装しようとする前にログインが正常に機能していたため、問題は次のコードのどこかにあるはずです。
ここでアクティビティを呼び出します。
Intent k = new Intent(this, MainActivity.class);
//Sends login name to activity k
k.putExtra("loginName", login.getText().toString());
//login is the EditText variable name for the login text field
startActivity(k);
ここで、余分なデータを取得し、説明どおりに使用しようとします。
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class ProfileActivity extends Activity {
TextView helloString;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
Bundle extras = getIntent().getExtras();
//Getting the hello text string
helloString = (TextView)findViewById(R.id.textHello);
String loginName = extras.getString("loginName");
helloString.setText("¡Hello, " + loginName + "!");
}
}
次の 2 行をコメントにすると、どうにかしてクラッシュを回避できます。
String loginName = extras.getString("loginName");
helloString.setText("¡Hello, " + loginName + "!");
それでも、問題が本当に存在するかどうかはわかりません。最初のアクティビティから送信されたデータのタイプが 2 番目に取得されるタイプと一致しないことに関係があるのではないかと考えましたが、まだ何も得られませんでしたその周りでいくつかのことを試した後の手がかり。
前もって感謝します。
編集:
テキストが profileActivity.class というアクティビティに表示されている間に mainActivity.class を呼び出しているという事実に関係がある可能性があることが実際にわかりました。問題は、profileActivity が mainActivity 内のタブとして表示されていることです。そのため、どのようにアプローチすればよいかよくわかりません。
編集 2:
だから私は最終的にそれを自分で解決しました。興味のある人のために、データを MainActivity.class に送信しました
Intent k = new Intent(this, MainActivity.class);
//Sends login name to activity k
k.putExtra("loginName", login.getText().toString());
startActivity(k);
また、メイン アクティビティ内で、ProfileActivity を呼び出してタブとして設定する場合:
//Profile tab
intent = new Intent(this, ProfileActivity.class);
Bundle extras = getIntent().getExtras();
intent.putExtra("loginName", extras.getString("loginName"));
spec = mTabHost.newTabSpec("home")
.setIndicator("Home", res.getDrawable(R.drawable.profile_icon))
.setContent(intent);
mTabHost.addTab(spec);
問題は解決しました。とにかく、みんなの助けに感謝します。