gpt4 book ai didi

java - 构建倒计时器的 GridView 时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:57:19 24 4
gpt4 key购买 nike

所以我有一个网格布局,

activity_main.xml

    <GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:verticalSpacing="0dp"
android:horizontalSpacing="0dp"
android:stretchMode="columnWidth"
android:numColumns="4"
android:clickable="false" />
</FrameLayout>

在该布局内部,我为网格单元指定了格式

grid_item.xml

<com.timer.app.ImageView
android:id="@+id/picture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
/>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:layout_gravity="bottom"
android:textColor="@android:color/white"
android:background="#55000000"
/>

我试图实现的目标是在每次单击网格项时,设置其适当的 TextView 以显示我设置的时间的倒计时。

这就是我陷入困境的地方:我不知道如何创建与每个网格项相关的倒计时器,以及如何检测哪个网格项被推送。

我知道常见的响应可能是指向 CountDownTimer 文档的链接,我已阅读该文档,但没有向我解释如何创建可以与每个网格项相关的计时器数组。

最佳答案

我不确定我可以帮助倒计时器,但我知道如何注册已单击的网格单元格。过去,我通过将 GridView 的每个单元格设置为一个按钮,并在创建每个单元格时向每个单元格添加一个标签来完成此操作。

日历.xml

<GridView
android:id="@+id/calendar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="-1px"
android:numColumns="7"
android:verticalSpacing="-1px" >
</GridView>

gridcell.xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/gridcell"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/black"
android:background="@drawable/calendar_button_selector_blue"
android:textAppearance="?android:attr/textAppearanceMedium">
</Button>
</LinearLayout>

然后,在java中:

GridView calendarView = (GridView) this.findViewById(R.id.calendar);
GridCellAdapter adapter = new GridCellAdapter(getApplicationContext(), R.id.gridcell);
adapter.notifyDataSetChanged();
calendarView.setAdapter(adapter);

public class GridCellAdapter extends BaseAdapter implements OnClickListener {
public GridCellAdapter(Context context, int textViewResourceId) {
super();
// ...
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
// ROW INFLATION
LayoutInflater inflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.gridcell, parent, false);
}
gridcell = (Button) row.findViewById(R.id.gridcell);
gridcell.setOnClickListener(this);
gridcell.setTag(R.id.TAG_ONE, 1);
}

@Override
public void onClick(View view) {
int value = (Integer) view.getTag(R.id.TAG_ONE);
}

}

关于java - 构建倒计时器的 GridView 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042333/

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