gpt4 book ai didi

android - setVisibility 不起作用

转载 作者:行者123 更新时间:2023-11-29 01:57:56 27 4
gpt4 key购买 nike

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/day_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dip"
android:orientation="vertical" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical"
android:padding="2dip" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="1dip" >

<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/marca_bike_event" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="1dip" >

<ImageView
android:id="@+id/imageView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/marca_bike_event" />
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/imageView13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView17"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:src="@drawable/marca_bike_event" />

<ImageView
android:id="@+id/imageView18"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/marca_bike_event" />
</LinearLayout>

<TextView
android:id="@+id/day_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dip"
android:gravity="right|bottom"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>

</RelativeLayout>

这是我的自定义 View

import java.util.Calendar;

public class DayView extends LinearLayout {

private final boolean belongsToMonth;
private final TextView numberView;
private int racesNum = 0;
private final ImageView iv1, iv2, iv3, iv4, iv5, iv6, iv7, iv8, iv9, iv10,
iv11, iv12, iv13, iv14, iv15, iv16, iv17, iv18;

public DayView(final Context context, final Calendar moving,
final SingleCalendar calendar) {
super(context);
View.inflate(context, R.layout.calendar_week_day, this);
iv1 = (ImageView) findViewById(R.id.imageView1);
iv2 = (ImageView) findViewById(R.id.imageView2);
iv3 = (ImageView) findViewById(R.id.imageView3);
iv4 = (ImageView) findViewById(R.id.imageView4);
iv5 = (ImageView) findViewById(R.id.imageView5);
iv6 = (ImageView) findViewById(R.id.imageView6);
iv7 = (ImageView) findViewById(R.id.imageView7);
iv8 = (ImageView) findViewById(R.id.imageView8);
iv9 = (ImageView) findViewById(R.id.imageView9);
iv10 = (ImageView) findViewById(R.id.imageView10);
iv11 = (ImageView) findViewById(R.id.imageView11);
iv12 = (ImageView) findViewById(R.id.imageView12);
iv13 = (ImageView) findViewById(R.id.imageView13);
iv14 = (ImageView) findViewById(R.id.imageView14);
iv15 = (ImageView) findViewById(R.id.imageView15);
iv16 = (ImageView) findViewById(R.id.imageView16);
iv17 = (ImageView) findViewById(R.id.imageView17);
iv18 = (ImageView) findViewById(R.id.imageView18);
final ImageView[] views = new ImageView[] { iv1, iv2, iv3, iv4, iv5,
iv6, iv7, iv8, iv9, iv10, iv11, iv12, iv13, iv14, iv15, iv16,
iv17, iv18 };
for (final ImageView v : views) {
v.setVisibility(View.INVISIBLE);
}

numberView = (TextView) findViewById(R.id.day_number);
numberView.setText(Integer.toString(moving.get(Calendar.DAY_OF_MONTH)));
setTag(moving.clone());
belongsToMonth = (moving.get(Calendar.MONTH) == calendar.current
.get(Calendar.MONTH));
final Resources res = getResources();
if (!belongsToMonth) {
numberView.setTextColor(res
.getColor(R.color.calendar_unbelonging_dayview_text));
setBackgroundResource(R.drawable.unbelonging_dayview);
} else {
numberView.setTextColor(res
.getColor(R.color.calendar_belonging_dayview_text));
setBackgroundResource((DateParseUtils.areEqualDays(moving,
calendar.today)) ? R.drawable.selected_dayview
: R.drawable.unselected_dayview);
}
}

protected void onMeasure(final int widthMeasureSpec,

public boolean belongsToMonth() {

public Calendar getCalendar() {

public void addRace(final ParseObject carrera) {
final ImageView[] views = new ImageView[] { iv1, iv2, iv3, iv4, iv5,
iv6, iv7, iv8, iv9, iv10, iv11, iv12, iv13, iv14, iv15, iv16,
iv17, iv18 };


if (racesNum < views.length) {
final ImageView iv = views[racesNum];
final int id = getRaceId(carrera);
iv.setImageDrawable(getContext().getResources().getDrawable(id));
for (int i = 0; i < views.length; i++) {
final ImageView iv2 = views[i];
if (i <= racesNum) {
iv2.setVisibility(View.VISIBLE);
} else {
iv2.setVisibility(View.INVISIBLE);
}
}
racesNum++;
}

}

private int getRaceId(final ParseObject carrera) {

final String disciplina = carrera.getString("disciplinaId");
if (disciplina.equals(SettingsActivity.ID_BIKE_EVENT)) {
return R.drawable.marca_bike_event;
} else if (disciplina.equals(SettingsActivity.ID_BMX)) {
return R.drawable.marca_bmx;
} else if (disciplina.equals(SettingsActivity.ID_ENDURO)) {
return R.drawable.marca_enduro;
} else if (disciplina.equals(SettingsActivity.ID_FREESTYLE)) {
return R.drawable.marca_freestyle;
} else if (disciplina.equals(SettingsActivity.ID_MOTO_GP)) {
return R.drawable.marca_moto_gp;
} else if (disciplina.equals(SettingsActivity.ID_MOTOCROSS)) {
return R.drawable.marca_motocross;
} else if (disciplina.equals(SettingsActivity.ID_MOTORBIKE_RALLY)) {
return R.drawable.marca_mc_rally;
} else if (disciplina.equals(SettingsActivity.ID_MTB_4X)) {
return R.drawable.marca_mtb_4x;
} else if (disciplina.equals(SettingsActivity.ID_MTB_DH)) {
return R.drawable.marca_mtb_dh;
} else if (disciplina.equals(SettingsActivity.ID_MTB_ENDURO)) {
return R.drawable.marca_mtb_enduro;
} else if (disciplina.equals(SettingsActivity.ID_QUADCROSS)) {
return R.drawable.marca_quad_cross;
} else if (disciplina.equals(SettingsActivity.ID_SUPERBIKE)) {
return R.drawable.marca_superbike;
} else if (disciplina.equals(SettingsActivity.ID_SUPERMOTO)) {
return R.drawable.marca_supermoto;
} else if (disciplina.equals(SettingsActivity.ID_TRIAL)) {
return R.drawable.marca_trial;
} else if (disciplina.equals(SettingsActivity.ID_URBAN_DH)) {
return R.drawable.marca_urban_dh;
} else if (disciplina.equals(SettingsActivity.ID_XC_RALLIES)) {
return R.drawable.marca_xc_rallies;
}
return R.drawable.marca_other_event;
}

}

addRaceAsyncTaskOnPostExecute 方法中调用。但是,它不会使任何 ImageView 可见。我调试了它,在 setVisibility 行上放置了一个断点,它实际上在主线程上调用了 setVisibility,但它不起作用。尝试更改 ImageView 可绘制对象也不起作用。

我已经尝试设置其可见性并更改构造函数上的可绘制对象,并且它有效。看起来 setVisibility 方法什么也没做。

我错过了什么吗?

最佳答案

好的,解决了。

我的 DayView s 是在 ArrayAdapter<Calendar> 上动态创建的.我所要做的就是在 getView 中进行所有 View 操作。 ArrayAdapter 的方法然后调用adapter.notifyDataSetChanged()而不是试图直接修改它们。

此外,我必须使用 ViewHolder 模式才能正确完成修改。

关于android - setVisibility 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137710/

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