前提・実現したいこと
リストビューの配列の一つ目にのみdialogのsetNegativeButtonを表示したい
発生している問題・エラーメッセージ
どのように定義したらよいのかが分かりません。 下のコードのままだと、すべてのリストをクリックしたときにsetNegativeButtonの表示が出てしまいます。
該当のソースコード
package com.example.mylistapp;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import android.graphics.Color;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.app.ListActivity;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//データ String[] str = { "位置情報", "カメラ", "カレンダー", };
配列がこれです
String[] msg = {
//位置情報 "Android端末の位置情報を取得する権限です。\n" + "位置情報サービスを使用するアプリは、ユーザーのプライバシーを保護するために、位置情報へのアクセスをリクエストする必要があります。\n" + "多くのアプリで求められる権限ですが、位置情報を収集して別の目的に利用するといった不正アプリなどもあるので注意しましょう。",
↑この一行目にのみ表示したい
//カメラ ~ //カレンダー ~ };
|
|
|
|
//リスト表示
((ListView)findViewById(R.id.lv)).setAdapter(adapter);
//クリック処理 ((ListView)findViewById(R.id.lv)).setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
new AlertDialog.Builder(MainActivity.this)
.setCustomTitle(str[position]+"の権限説明")
.setMessage(msg[position])
.setPositiveButton("閉じる", null)
.setNegativeButton("位置情報取得へ", null) ←ここのsetNegativeButtonを一行目にのみ表示したい
.setIcon(R.mipmap.ic_launcher)
.show();
}
});
}
}
試したこと
色々なサイトを参考にしましたが、分かりませんでした。
初心者質問で申し訳ありませんが、どなたかよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Android studio
回答1件
あなたの回答
tips
プレビュー