0

私はAndroid用のアプリを開発するのが初めてで、最初に簡単なConterterアプリを作成したいと思っています. 私の見解では、edittext と Button があります。ボタンをクリックすると、文字列のリストを含む AlertDialog が開きます。これを管理する方法がわかりません: AlertView の 1 つの項目をクリックすると、ボタンのテキストを選択した文字列に設定し、AlertDialog を閉じます。誰か助けてくれませんか?

public class VypocetDlzkyActivity extends Activity {

EditText HodnotaDlzka;
Button prevodDlzkaZtlacidlo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vypocet_dlzky);




}

public void zmenPrevodZ(View view){

    final String[] jednotkyDlzky = {"milimeter", "centimeter", "decimeter", "meter", "kilometer", "svetelny rok"};
    AlertDialog.Builder builder = new AlertDialog.Builder(VypocetDlzkyActivity.this);
    builder.setTitle("Vyberte jednotku");
    builder.setItems(jednotkyDlzky,null);
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
        String value = jednotkyDlzky[item].toString();
        prevodDlzkaZtlacidlo.setText(value);
                 dialog.cancel();
    }
    };

    final AlertDialog alert = builder.create();
    alert.show();

}
4

2 に答える 2

1

onCreate()次のように、メソッドでこれら 2 つのメンバー変数の値を設定する必要があります。

HodnotaDlzka = (EditText)findViewById(R.id.xxxx);
prevodDlzkaZtlacidlo = (Button)findViewById(R.id.yyyy);

xxxxEditTextactivity_vypocet_dlzky.xml で指定した ID で、yyyyは に指定した ID ですButton

また、 でボタンをクリックするAlertDialogと、ダイアログは自動的に閉じられるため、 を呼び出す必要はありませんdialog.cancel()

于 2012-12-30T14:25:54.323 に答える
0

問題は、onClick listnerz を追加しなかったことです。ボタンをクリックすると、必要なメソッドを呼び出す必要があります。

public class MainActivity extends Activity implements OnClickListener {

EditText HodnotaDlzka;
Button prevodDlzkaZtlacidlo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    HodnotaDlzka = (EditText) findViewById(R.id.e1);
    prevodDlzkaZtlacidlo = (Button) findViewById(R.id.b1);
    prevodDlzkaZtlacidlo.setOnClickListener(this);

}


@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
     final String[] jednotkyDlzky = {"milimeter", "centimeter", "decimeter", "meter", "kilometer", "svetelny rok"};
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Vyberte jednotku");
        builder.setItems(jednotkyDlzky,new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
            String value = jednotkyDlzky[item].toString();
            prevodDlzkaZtlacidlo.setText(value);
        }
        });
    enter code here
        final AlertDialog alert = builder.create();
        alert.show();
}
}
于 2013-01-21T11:48:23.653 に答える