gpt4 book ai didi

Android TextView 在 AlertDialog 中的可见性没有改变

转载 作者:行者123 更新时间:2023-12-04 18:02:27 25 4
gpt4 key购买 nike

我正在使用使用 android.suport.v7.app.AlertDialog 创建的 AlertDialog 并且我为 Dialog 使用一些 EditText 和一些自定义布局 TextView 。

所使用的 TextView 最初将其可见性设置为 GONE

我使用 TextView 主要是为了提示用户在 EditText 字段中输入错误。

因此,当我尝试将 TextView 的可见性切换为 VISIBLE 以显示错误消息时,可见性不会改变。

我的 layoutS 的 XML 文件是:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:id="@+id/contactName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:hint="@string/sampark_naam"
android:layout_marginEnd="5dp"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:layout_marginRight="5dp">
<requestFocus />
</EditText>

<TextView
android:id="@+id/noName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/no_name_error"
android:textColor="@android:color/holo_red_dark"
android:layout_marginEnd="5dp"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginRight="5dp"
android:visibility="gone"/>
</LinearLayout>

使用的AlertDialog是:

final Context context = view.getContext();
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View aDrishya = layoutInflater.inflate(R.layout.layoutS, null, false);
vNaam = (EditText) aDrishya.findViewById(R.id.contactName);
nameError = (TextView) aDrishya.findViewById(R.id.noName);
sSanddok = new AlertDialog.Builder(context)
.setView(aDrishya)
.setTitle("Add A New Contact")
.setPositiveButton("Add +", new PositiveButton(context))
.setNegativeButton("Pick", new null);
sSanddok.show();

在肯定按钮中,我检查输入的联系人姓名:

if(vNaam.getText().toString().equals("")) {
Toast.makeText(this, "No Name", Toast.LENGTH_SHORT).show();
nameError.setVisibility(View.VISIBLE);
} else {
nameError.setVisibility(View.GONE);
}

它显示了 Toast 但没有显示 TextView

知道这里出了什么问题以及如何解决吗?

最佳答案

您好,您可以尝试更改并运行此代码,看看它是否有效..

警报对话框更改:

sSanddok = new AlertDialog.Builder(context)
.setView(R.layout.layoutS)
.setTitle("Add A New Contact")
.setPositiveButton("Add +", null)
.setNegativeButton("Pick",null);

sSanddok.show();



sSanddok.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//if edit text value is empty do this
TextView tv = (TextView)sSanddok.findViewById(R.id.noName);
tv.setVisibility(View.VISIBLE);
}
});

XML 中的 TextView 可见性已设置为消失。嗨,这对我有用...试试这个代码

关于Android TextView 在 AlertDialog 中的可见性没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32825506/

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