当前位置: 首页 > 面试题库 >

OnClickListener和表布局

后焕
2023-03-14
问题内容

我有一个带有两个布局的Activity,都在R.layout.main中实现。第一个是带有html" target="_blank">应用程序主屏幕的相对布局,另一个是具有一种首选项屏幕的表布局。通常,第一个设置为可见,第二个设置为消失。通过单击一个按钮,我使相对布局消失了,并且表格布局可见。这开始了我的问题,我想为该表布局(实际上是一个按钮数组)设置一个OnClickListener。我尝试了类似的东西:

final TableLayout table = (TableLayout)findViewById(R.id.tab);
    table.setOnClickListener(new OnClickListener(){
        public void onClick(View arg){
             Button clickedButton = (Button)arg;
             String t = (String) clickedButton.getTag();

             Toast toast = Toast.makeText(getApplicationContext(),t,Toast.LENGTH_SHORT);
             toast.show();

        }
    });

显然,它不起作用。我是Android编程的新手,我一直在寻找一整天没有任何结果的合适解决方案。


问题答案:

它无法正常工作,因为您首先尝试将TableLayout投射到按钮上…如果TableLayout仅包含按钮,则​​可以执行以下操作:

TableLayout yourRootLayout = findView....
int count = yourRootLayout.getChildCount();
for(int i = 0; i < count; i++){
    View v = yourRootLayout.getChildAt(i);
    if(v instanceof TableRow){
        TableRow row = (TableRow)v;
        int rowCount = row.getChildCount();
        for (int r = 0; r < rowCount; r++){
            View v2 = row.getChildAt(r);
            if (v2 instanceof Button){
                Button b = (Button)v2;
                b.setOnClickListener(this);
            }
        }
    }
}

并让您的活动实现OnClickListener。只需将您现有的onClick复制到“活动”中…



 类似资料:
  • 问题内容: 我试图通过单击方法中的按钮来打开新窗口。方法如何工作以及在其中应该如何做才能启动新方法? 问题答案: 可以使用名为Intents的android主要构建模块之一和属于Activity类的方法之一来完成此任务。 目的是要执行的操作的抽象描述。它可以与startActivity一起使用来启动一个Activity,可以将broadcastIntent发送到任何感兴趣的BroadcastRec

  • 我有一个使用ViewPager的活动,在这个ViewPager中有一个TouchImageView(一个检测手势和相应缩放/移动的ImageView)。 现在,每当单击图像时,我想要更改UI中的一些内容,但因为TouchImageView是在PagerAdapter中声明的,所以我无法访问它,如果我要在PagerAdapter的一侧设置一些内容,我也无法访问我想要更改的UI组件(我还想在应用程序中

  • 所以,经过5个月的Web开发,我需要重新使用android,但我发现我的一些旧代码已经不能工作了。我有一个带有数据适配器的RecyclerView,但项目的onClickListener没有任何响应。这是我的代码的样子: ProjectsActivity.java 列表显示出来,点击不起作用,甚至连到控制台的日志都没有。有人知道我做错了什么吗?我使用SDKV23作为编译SDK版本。我的SDK最低版

  • 我在 Kotlin 中有两个布局,每个布局都有一个按钮,我只想在两者之间切换。所以我在两者中都添加了一个OnClickListener 好吧,它实际上正在工作。我可以转到第二个布局并切换回第一个布局,但我无法再次打开第二个布局! 我认为在更改回主视图后必须重新定义监听器,因此我创建了两个单独的函数来设置视图。 当我试图在Java中解决同样的问题时,这种方法是有效的,但是在Kotlin中,我仍然只能

  • 问题内容: 在python中,如果您编写类似 如果布尔语句为true,则python似乎返回垃圾邮件,否则返回egg。有人可以解释这种行为吗?为什么表达式不像一个长布尔值那样被求值? 编辑:具体来说,我试图弄清楚为什么该表达式的结果返回“ spam”或“ eggs”的机制。 问题答案: 运算符和短路,这意味着如果仅从对第一个操作数求值就可以得出表达式的结果,则不对第二个操作数求值。例如,如果您具有

  • 问题内容: 我正在尝试使用新的Android Studio开发和应用,但是我的OnClickListener始终收到重大错误。主要是告诉我它无法解析符号“ setOnClickListener”,也无法解析“ View v” 那是班上的代码 这些是我收到的错误,绝对没有道理。28行开始于 编辑:现在当我按下按钮时,我收到一个强制关闭 这是应该打开的类,仅有的类是唯一的变化是要打开的布局 问题答案: