前提・実現したいこと
"個数を選択する"ボタン(btn_1からbtn_3)を押すことで、ダイアログメッセージが表示され、ダイアログで選択した項目をTextViewを用いて、テキスト表示する動作を複数個実装したいです。現在の状況は、それぞれのボタンを押すとダイアログが表示され、その値がテキスト表示されますが、他のボタンを押した際も、全て同じテキストに表示されてしまいます。それぞれのTextViewに表示するにはどのようにすれば良いでしょうか?自分の考えとしてはフラグメントのpublic void onClick(DialogInterface dialog, int which)の部分をボタンごとに処理できるよう、public void btn_1onClick(DialogInterface dialog, int which)にしたのですが、new DialogInterface.OnClickListener()にエラーが表示されました。初めて2週間ほどの初心者ですがご指導の程よろしくお願いします。
package to.msn.wings.dialogbasic;
import android.app.Dialog;
import android.os.Bundle;
import android.app.AlertDialog;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import android.content.DialogInterface;
import android.widget.Button;
import android.widget.Switch;
import android.widget.TextView;
import java.util.Locale;
import android.view.View.OnClickListener;
public class MyDialogFragment extends DialogFragment {
int selected=0;
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
final String[] items = { "1個", "2個", "3個", "4個","5個","6個","7個","8個" }; AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); return builder.setTitle("個数") .setIcon(R.drawable.wings) .setItems(items, new DialogInterface.OnClickListener() { public void btn1_onClick(DialogInterface dialog, int which) { selected=which; TextView text2=getActivity().findViewById(R.id.text2); text2.setText(String.format(Locale. JAPAN, "%s",which+1)); } } ) .create(); }
}```Java
コード
### 発生している問題・エラーメッセージ <anonymous to.msn.wings.dialogbasic.MyDialogFragment$1>はabstractでなく、OnClickListener内のabstractメソッドonClick(DialogInterface,int)をオーバーライドしません ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー