gpt4 book ai didi

android - 在 alertdialog-Android 中更改 ImageView 的可见性

转载 作者:行者123 更新时间:2023-11-30 03:07:06 24 4
gpt4 key购买 nike

我正在尝试构建一个自定义警报对话框,其中有 3 个 ImageViews。我想动态地隐藏和显示这些 ImageViews。这是我的 showroute()我在其中创建自定义对话框的 HomeActivity 类。

AlertDialog.Builder alertDialog = new AlertDialog.Builder(HomeActivity.this);
alertDialog.setView(getLayoutInflater().inflate(R.layout.routedialog, null));
alertDialog.setTitle("Home Activity");
alertDialog.setIcon(R.drawable.logo);
alertDialog.setMessage(Html.fromHtml("<b>Route Details</b>"));
ImageView iv1,iv2,iv3;
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View convertView = (LinearLayout) inflater.inflate(R.layout.routedialog, null);
iv1=(ImageView) convertView.findViewById(R.id.iv1);
iv2=(ImageView) convertView.findViewById(R.id.iv2);
iv3=(ImageView) convertView.findViewById(R.id.iv3);


iv1.setVisibility(View.GONE);
iv2.setVisibility(View.GONE);
iv3.setVisibility(View.GONE);

convertView.findViewById(R.id.ll).invalidate();

这是我的 routedialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" >
<ImageView
android:id="@+id/iv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ivred" />
<ImageView
android:id="@+id/iv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ivblue" />
<ImageView
android:id="@+id/iv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ivgreen" />
</LinearLayout>

我希望这些 ImageViews 在对话框管理器弹出时隐藏,并且必须在检查某些条件后动态显示。请帮助。

最佳答案

你又在给布局充气

 LayoutInflater inflater = getLayoutInflater();
View convertView = (LinearLayout) inflater.inflate(R.layout.routedialog, null);
alertDialog.setView(convertView);

现在初始化 View 并设置 View 的可见性。还要检查你是想要 GONE 还是 INVISIBLE @ http://developer.android.com/reference/android/view/View.html#attr_android:visibility根据您的需要

此外,我在您的自定义对话框布局中没有看到任何地方 iv4、iv5、iv6、iv7、iv8

这个

   iv4=(ImageView) convertView.findViewById(R.id.iv4);
iv5=(ImageView) convertView.findViewById(R.id.iv5);
iv6=(ImageView) convertView.findViewById(R.id.iv6);
iv7=(ImageView) convertView.findViewById(R.id.iv7);
iv8=(ImageView) convertView.findViewById(R.id.iv8);

将给出 NullPointerException

编辑:

AlertDialog.Builder alertDialog = new AlertDialog.Builder(HomeActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.routedialog, null);
alertDialog.setView(convertView);
alertDialog.setTitle("Home Activity");
alertDialog.setIcon(R.drawable.ic_launcher);
alertDialog.setMessage(Html.fromHtml("<b>Route Details</b>"));
ImageView iv1,iv2,iv3;
iv1=(ImageView) convertView.findViewById(R.id.iv1);
iv2=(ImageView) convertView.findViewById(R.id.iv2);
iv3=(ImageView) convertView.findViewById(R.id.iv3);
iv1.setVisibility(View.GONE); // GONE oR INVISIBLE according to what you want
iv2.setVisibility(View.GONE);
iv3.setVisibility(View.GONE);
alertDialog.show();

当 ImageView 可见时捕捉

enter image description here

关于android - 在 alertdialog-Android 中更改 ImageView 的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21620505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com