2012-04-03 6 views
0

レイアウトを表示するのが難しいです。 1.ユーザーがボタン をクリックします。2.メッセージが表示され、ユーザーが「はい」または「いいえ」のいずれかを選択します。 3.「はい」をクリックすると、「ダイヤルパッド」という名前のレイアウトが表示されます。ボタンをクリックした後にレイアウトを呼び出す方法はありますか?

「はい」をクリックすると「残念ながら停止しました」と表示されます。誰でも助けてくれますか? 私はこのライン上の問題があると知っています...

ViewStub stub = (ViewStub)findViewById(R.id.dialpad); 
stub.setVisibility(View.VISIBLE); 

はあなたの助けをありがとう!

ここでは、コードです:

package com.example; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewStub; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ExampleGUIDialogActivity extends Activity { final Context context = this; private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.buttonAlert); // add button listener button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( context); // set title alertDialogBuilder.setTitle("Your Title"); // set dialog message alertDialogBuilder .setMessage("Click yes to exit!") .setCancelable(false) .setPositiveButton("Yes",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close // current activity // launch dialer ViewStub stub = (ViewStub)findViewById(R.id.dialpad); stub.setVisibility(View.VISIBLE); //stub.inflate(); //View mDialerView = (View)findViewById(R.id.dtmf_twelve_key_dialer_view); //mDialerView.bringToFront(); ExampleGUIDialogActivity.this.finish(); } }) .setNegativeButton("No",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, just close // the dialog box and do nothing dialog.cancel(); } }); // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); } }); } }

+0

いくつかコードを記入してください。特にエラーは何ですか? – Davek804

+0

コードを見ずにお手伝いすることは非常に困難です。あなたはそうは思わない? –

+0

この行を削除する 'ExampleGUIDialogActivity.this.finish();' –

答えて

0

はあなたがどんなlogcat情報を提供することができ、この

ViewStub stub = (ViewStub)findViewById(R.id.dialpad); 
if (stub != null){ 
    stub.setVisibility(View.VISIBLE); 
} 

を試してみてください?

+0

http://pastebin.com/C00YmgyX – user1296153

0

もう1つの問題は、ViewStubを膨らませてすぐにアクティビティを終了することです。これはあらゆる種類の問題を引き起こします。まず第一に、あなたのユーザーは新しいレイアウトを見ることはありません!

は、私はあなたがそれに基づいて何らかのアクションを実行するユーザーをその内容として持つ新しいActivityはあなたが膨張するようにしようとしているレイアウトを表示起動し、許可したいかもしれないと思う...または、おそらくあなたはdialog.dismiss()を呼び出したいです代わりに?

+0

ExampleGuiDialogActivity.this.finish()を削除し、setVisibilityの周りでtryキャッチを試みたところ、アプリケーションはクラッシュしなかったレイアウトを表示していませんでした。 – user1296153