手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >为啥按钮没反应?
为啥按钮没反应?
摘要:publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickL...

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //遍历控件,如何是按钮就注册点击事件监听器

        LinearLayout MainLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.activity_main, null);

        for (int i = 0; i <  MainLayout.getChildCount(); i++) {

            View v = MainLayout.getChildAt(i);

            if (v instanceof Button)

            {

                Button button = (Button) v;

                button.setOnClickListener(this);

            }

        }

    @Override

    public void onClick(View v) {

        switch (v.getId())

        {

             //按钮响应代码

            case R.id.ButtonGetContent:

                EditText txtContent = (EditText) findViewById(R.id.Edit_Name);

                Toast.makeText(MainActivity.this,txtContent.getText().toString(),Toast.LENGTH_SHORT).show();

            default:

                break;

        }

    }

}

回复讨论(解决方案)

你Button都没实例化,设置他的点击事件没用的,单纯的实例化外层的LinearLayout ,并不能把内层的Button也实例化出来 你已经用seftContextView加载了布局,为什么下边又用 LinearLayout MainLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.activity_main, null);方法加载了一次呢?这样确定没有问题,显示的与你遍历的是一致的吗? 不知道findviewbyid?? .inflate   

问题就出在这里.

你这是重新实例化了一个layout, 并且这个layout并没有加入到activity中显示. 所以你加了监听器, 但没有显示出来

怎么会响应.

你应该是获取activiy中已经绑定的layout, 然后遍历控件.Activity.getWindow.getDecorView()    控件对象需要实例化 代码有两个问题,一个是上面他们说的,setContentView(R.layout.activity_main);是显示到界面的,你注册监听的button是你用inflate加载出来的另一个对象,并不是显示在界面的button

另一个是你遍历控件的方法并不一定能遍历出所有button,你的跟布局是LinearLayout,如果跟布局的一个子view也是一个layout,那这个子layout里面的button你这样循环是遍历不到的

【为啥按钮没反应?】相关文章:

Android 实用工具之emulator介绍

Android:Service之AIDL传递复杂对象

如何建立手机互联网?

android图像绘制(五)画布保存为指定格式/大小的图片

Android开发之OpenGL ES 颜色

Android实现歌曲播放时歌词同步显示具体思路

android中添加按钮事件的方法

Android无视屏幕解锁保护界面破解

android根据分辨率自动调整字体大小的实例代码

Android Mms之:深入理解Compose

精品推荐
分类导航