【问题标题】:How to know in which TableRow a CheckBox is placed如何知道 CheckBox 放置在哪个 TableRow 中
【发布时间】:2016-05-31 16:39:57
【问题描述】:

我有一个 TableLayout,里面有 TableRows 和 CheckBox 和 TextView。当我按下 CheckBox 时,我需要知道在 TableRow 中放置 CheckBox 以使 TextView“关联”到此 CheckBox。例如:

表格布局:

  • TableRow 1:X TextView1
  • TableRow 2:X TextView2
  • ...

我正在尝试这样的事情:

cb.setOnClickListener(new View.OnClickListener() {                                              
    @Override
    public void onClick(View v) {
    if (cb.isChecked())
    {
        int id_cb = cb.getId();
        boolean encontrado = false;
        for (int i = 0; i < tabla_tareas.getChildCount() && !encontrado; i++)
        {
            TableRow aux_tr = (TableRow) tabla_tareas.getChildAt(i);
            CheckBox aux_cb = (CheckBox) aux_tr.getChildAt(0);
            if (id_cb == aux_cb.getId())
                   encontrado = true;
        }...

但它不起作用。

【问题讨论】:

  • 我不明白为什么你需要一个 checkBox 和相关的 TextView 如果你可以做 checkBox.setText("some String");
  • 是的。我正在显示来自数据库的数据,现在我试图在每一行中添加一个复选框来升级我的应用程序,所以我不记得 CheckBox 对象有一个 setText 方法。谢谢。

标签: android


【解决方案1】:

利用Elior所说的,你为什么不使用以下方法来实现你想要的:

cb.setOnClickListener(new View.OnClickListener() {                                              
@Override
public void onClick(View v) {
if (cb.isChecked())
{
    cb.getText().toString(); //This will retrieve the text associated with the Checkbox
    cb.setText("Your new string here"); //This will set the text associated with the CheckBox
    }...

使用上述两种方法,您应该能够在不需要TextView 的情况下完成您需要做的所有事情,并且可能也不需要TableLayout,因为我假设您使用它来对齐CheckBoxes和TextViews。

【讨论】:

  • 是的,这正是我所需要的。非常感谢。有时您会非常沮丧,无法找到最简单的解决方案。
  • @Elior 可以理解。我们都有那样的日子!
  • @TronicZomB 是的,我知道.. :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多