gpt4 book ai didi

android - 如何修复单击时错误的 alertDialog?

转载 作者:行者123 更新时间:2023-11-30 00:11:37 25 4
gpt4 key购买 nike

我在主 UI 上显示了 2 个 TextView。我将每个 TextView 关联到一个唯一的 clickListener,该 clickListener 启动一个唯一的 AlertDialog 供用户进行选择。第一个 TextView 正在启动第二个 AlertDialog 的第二个布局,而不是第一个 AlertDialog 的预期第一个布局。我在这里缺少什么?

activity_main.xml file

...
<TextView
android:id="@+id/fList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:text="filter"
android:textStyle="bold|italic"
android:textColor="@color/text_primary"
/>

<TextView
android:id="@+id/qList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="quickList"
android:textStyle="bold"
android:textColor="@color/text_primary"
android:gravity="center"
/>

MainActivity.java file

public class MainActivity extends AppCompatActivity
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView mTextViewFilter = (TextView)findViewById(R.id.fList);
TextView mTextViewQuickList = (TextView)findViewById(R.id.qList);

mTextViewFilter.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view){

final AlertDialog.Builder alertDialogFilter = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflaterFilter = getLayoutInflater();

final ViewGroup nullParent = null;
// the AlertDialog layout for the first TextView click.
final View dialogLayoutFilter = inflaterFilter.inflate(R.layout.filter_main, nullParent);
alertDialogFilter.setView(dialogLayoutFilter);
final AlertDialog dialogFilter = alertDialogFilter.show();
...
}
});

mTextViewQuickList.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = getLayoutInflater();

final ViewGroup nullParent = null;
// the AlertDialog layout for the second TextView click.
final View dialogLayout = inflater.inflate(R.layout.entire_layout, nullParent);
alertDialog.setView(dialogLayout);
final AlertDialog dialog = alertDialog.show();
...
}
});

entire_layout.xml
...
<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="380dp"
android:minHeight="160dp" >

<ImageView
android:id="@+id/imageViewX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingRight="20dp"
android:paddingEnd="20dp"
android:contentDescription="x"
android:src="@drawable/ic_close_white_24dp" />

<TextView
android:id="@+id/FullList"
android:layout_below="@+id/imageViewX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:textStyle="bold"
android:textAppearance="@android:style/TextAppearance.Large"
android:text="Show entire list" />

<TextView
android:id="@+id/fullNewest"
android:layout_below="@+id/FullList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:layout_marginBottom="10dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:text="Created ... />

filter_main.xml
...
<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="380dp"
android:minHeight="280dp" >

<ImageView
android:id="@+id/imageViewX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingRight="20dp"
android:paddingEnd="20dp"
android:contentDescription="x"
android:src="@drawable/ic_close_white_24dp" />

<TextView
android:id="@+id/Filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageViewX"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:textStyle="bold"
android:textAppearance="@android:style/TextAppearance.Large"
android:text="Filter..." />

<TextView
android:id="@+id/AllDos"
android:layout_below="@+id/Filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:text="All..." />

<TextView
android:id="@+id/AllBuys"
android:layout_below="@+id/AllDos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:text="All..." />

<TextView
android:id="@+id/AllWork"
android:layout_below="@+id/AllBuys"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:text="All..." />

<TextView
android:id="@+id/AllHome"
android:layout_below="@+id/AllWork"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:text="All..." />

<TextView
android:id="@+id/AllWaitingfor"
android:layout_below="@+id/AllHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="40dp"
android:layout_marginLeft="40dp"
android:layout_marginBottom="5dp"
android:textAppearance="@android:style/TextAppearance.Medium"
android:text="All..." />

最佳答案

不确定您的 TextView 的父级是什么,但是因为您使用的属性如下:

android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"

我猜这是一个 RelativeLayout

由于您既没有使用方向也没有使用相对位置,我想您的 TextView 都在同一行上,只是顶部边距不同,但是 quick list TextView 的宽度为 match_parent和重心

android:layout_width="match_parent"
android:gravity="center"

所以发生的事情是这样的:

enter image description here

并且您的点击总是触发完全覆盖第一个的第二个 TextView。

要修复它,请按以下方式更改您的快速列表 TextView:

<TextView
android:id="@+id/qList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="quickList"
android:textStyle="bold"
android:textColor="@color/text_primary"
android:layout_centerHorizontal="true"/>

具有属性:

android:layout_width="wrap_content"
android:layout_centerHorizontal="true"

它将居中但不与第一个 TextView 重叠。

我希望这会有所帮助,如果我错了并且您的 activity_main.xml 文件不同,请更新您的代码,以便更容易找出任何其他问题。

关于android - 如何修复单击时错误的 alertDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48045536/

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