gpt4 book ai didi

Android:许多相同的按钮,onclick 某些情况下不起作用

转载 作者:行者123 更新时间:2023-11-29 01:58:42 24 4
gpt4 key购买 nike

我在 LinearLayout 中有七个相同的 Buttons

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:weightSum="7" >

<Button
android:id="@+id/btn_mon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@color/white"
android:text="0" />

<Button
android:id="@+id/btn_tus"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:background="@color/white"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_wen"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:background="@color/white"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_thu"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:background="@color/white"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_fri"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:background="@color/white"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_sat"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:background="@color/white"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_sun"
android:layout_width="50dp"
android:layout_height="50dp"
android:text="0"
android:background="@color/white"
android:layout_weight="1"/>
</LinearLayout>

它们的 OnClickListener 也是相等的(并且也在初始化):

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.calendar_row, null);
}

final Button btn_mon = (Button)convertView.findViewById(R.id.btn_mon);
final Button btn_tus = (Button)convertView.findViewById(R.id.btn_tus);
final Button btn_wen = (Button)convertView.findViewById(R.id.btn_wen);
final Button btn_thu = (Button)convertView.findViewById(R.id.btn_thu);
final Button btn_fri = (Button)convertView.findViewById(R.id.btn_fri);
final Button btn_sat = (Button)convertView.findViewById(R.id.btn_sat);
final Button btn_sun = (Button)convertView.findViewById(R.id.btn_sun);

btn_mon.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_mon, weekdays.get(0).data); }});
btn_tus.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_tus, weekdays.get(1).data); }});
btn_wen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_wen, weekdays.get(2).data); }});
btn_thu.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_thu, weekdays.get(3).data); }});
btn_fri.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_fri, weekdays.get(4).data); }});
btn_sat.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_sat, weekdays.get(5).data); }});
btn_sun.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { onCalBtnClick(btn_sun, weekdays.get(6).data); }});

onCalBtnClick 方法:

private void onCalBtnClick(Button btn, int day){            

Log.d("debug", String.valueOf(day));
btn.setTextColor(mContext.getResources().getColor(R.color.orange));
//selectedYear, month are global
Intent intent = new Intent();
intent.putExtra("year", selectedYear);
intent.putExtra("month", month);
intent.putExtra("day", day);
setResult(RESULT_OK, intent);
finish();
}

但是,如果我将 Log.d 放入 onCalBtnClick 方法(从每个 clicklistener 调用),只有中间三个按钮起作用。左侧的两个按钮(btn_monbtn_tus)和右侧的两个按钮(btn_satbtn_sun) ' 对用户点击使用react。中间按钮工作正常。

这是类似的问题 Android LinearLayout make button doesn't work但是我的布局文件对应于那里答案中的模式,但是按钮不起作用

更新

当我删除布局文件中的固定按钮高度和宽度(从 50dp 到 wrap_content)时,所有按钮都开始工作了!

但是,现在看起来并不需要。按钮上的文本之间需要留有空间。

主要问题:为什么?

最佳答案

如果您在布局中使用权重,则表明它应该以某种比例填充一些对象。它与“wrap_content”正好相反。使用权重外部布局定义内部 View 的大小,而“wrap_content”意味着外部布局大小由内部 View 定义。请决定在这种情况下哪种方法更好——移除权重或固定内部 View 大小。

关于Android:许多相同的按钮,onclick 某些情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818454/

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