ログイン画面が表示され、他のさまざまなタブに影響を与えるアプリケーションを作成しようとしています。
タブ付きの実装は正常に機能しています。タブを非表示にして、他のタブのレイアウトを表示できますが、それらを再表示することはできません。ボタン処理を試みない場合、プログラムは正常に動作しますが、リスナーを起動するたびに強制終了します。
添付されているのは問題のコードです。力がどこから近づいているのか正確にはわかりませんが、それがボタン リスナー領域にあることはわかっています。
基本的に、ユーザーの名前とパスワードが正しい場合にタブが表示されるようにします。
表示されているのは 4 つのタブのうちの 1 つです。具体的には、ログイン画面のタブを見ています。
コード:
public class LoginActivity extends Activity {
TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
final Button btn = (Button) findViewById(R.id.login_button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText txt_username = (EditText) findViewById(R.id.txt_username);
EditText txt_password = (EditText) findViewById(R.id.txt_username);
if (txt_username.toString().equals("Bob")
&& txt_password.toString().equals("123")) {
tabHost.getTabWidget().getChildAt(0)
.setVisibility(View.VISIBLE);
tabHost.getTabWidget().getChildAt(1)
.setVisibility(View.VISIBLE);
tabHost.getTabWidget().getChildAt(2)
.setVisibility(View.VISIBLE);
tabHost.getTabWidget().getChildAt(3)
.setVisibility(View.GONE);
}
}
});
}
}
logcat が添付されています (非常に長い)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): FATAL EXCEPTION: main
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.waiter/android.waiter.waiter}: java.lang.RuntimeException: Unable to start activity ComponentInfo{android.waiter/android.waiter.LoginActivityGroup}: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{android.waiter/android.waiter.LoginActivity}: java.lang.NullPointerException
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.os.Looper.loop(Looper.java:123)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at android.app.ActivityThread.main(ActivityThread.java:4627)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at java.lang.reflect.Method.invoke(Method.java:521)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-12 17:07:31.465: ERROR/AndroidRuntime(1480): at dalvik.system.NativeStart.main(Native Method)