私はいくつかのボタンを示すカスタムダイアログを持っています。考え方はスクロール可能なDialogで、0〜9、0〜F、0〜Zの数字や文字を選択できます。ダイアログ内のボタンの問題
私の最初の問題は、これらのボタンをコードと毎回可変数のボタンがあるのでxmlではない。私にとっては最も単純なコードですらクラッシュするので、私はおそらく何か正しいことをしていないでしょう。
また、ボタンをクリックしたときに、いくつかのxmlボタンを使用してコードをクリックすると、onClick関数が見つからないというコードが表示されます。あなたが見ることができるように、私はアンドロイドを持っています:onClick = "onClickDialogbutton"私のボタンxmlで、関数は私のJavaコードに存在しますが、それでもクラッシュします。
誰かがコードを見て、プログラムでボタンを追加し、onClickを動作させることができますか?ここで
が私のコードです:
DialogTestActivity.java:
package com.test.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
public class DialogTestActivity extends Activity {
Dialog dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onClickStartDialog(View view) {
dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog);
dialog.setCancelable(true);
dialog.show();
// I here wish to add buttons through code and not xml.
// This gives an error as it is now.
Button button = new Button(this);
((LinearLayout)findViewById(R.id.Buttons)).addView(button);
}
public void onClickDialogButton(View view) {
dialog.dismiss();
}
}
Main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="onClickStartDialog"
android:text="Start Dialog" />
</LinearLayout>
Dialog.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="54dip"
android:layout_height="150dip"
android:gravity="center" >
<ScrollView
android:layout_width="48dip"
android:layout_height="144dip" >
<LinearLayout
android:id="@+id/Buttons"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/ButtonId0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="onClickDialogbutton"
android:text="0"
android:textSize="32dip" />
<Button
android:id="@+id/ButtonId1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="onClickDialogbutton"
android:text="1"
android:textSize="32dip" />
<Button
android:id="@+id/ButtonId2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="onClickDialogbutton"
android:text="2"
android:textSize="32dip" />
</LinearLayout>
</ScrollView>
</RelativeLayout>
クラッシュが発生したときにlogcatから取得した例外スタックトレースを投稿してください – Craigy