【问题标题】:Linking xml pages with layout将xml页面与布局链接
【发布时间】:2012-04-27 14:09:30
【问题描述】:

请原谅这个请求的简单性 - 但有没有办法让我通过布局而不是代码链接按钮的 onClick 命令。我正在尝试创建一个简单的应用程序,我希望能够制作按钮并让点击从一个“页面”转到另一个。

是否有网站可以概述如何使用 UI 为 droid 编写代码?

谢谢!

【问题讨论】:

    标签: android user-interface layout


    【解决方案1】:
    1. 制作您想要的按钮数量。确保如果它超过屏幕数量,您必须分配一个滚动视图。

    假设你有你的R.layout.main.xml。要找到这个去res/layout/main.xml 复制 XML,右键单击并将其粘贴到布局文件夹中。然后它会说Rename。将其重命名为您想要的任何名称。

    现在专门复制这个,假设你放了

    btn1
    btn2 
    btn3
    btn4 
    btn5 
    

    要使 id 标签转到每个按钮上的属性并滚动到 id 并将结尾重命名为 btn1 、2,3、4 等。

    现在,如果您要将其放在 .java 文件中的 src/com.whateveryounamed.app/what ever you named .java

    将此代码放在下面,它将起作用。下面是我在 xml 页面中有 5 个按钮的示例。

    package com.nashvillekurds.app;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class kurdishhistoryapp extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            Button btn1 =(Button)findViewById(R.id.btn1);
            Button btn2 =(Button)findViewById(R.id.btn2);
            Button btn3 =(Button)findViewById(R.id.btn3);
            Button btn4 =(Button)findViewById(R.id.btn4);
            Button btn5 =(Button)findViewById(R.id.btn5);
    
            btn1.setOnClickListener(new Button.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent myIntent = new Intent();
    
                    myIntent.setAction(Intent.ACTION_VIEW);
    
                    myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                    setContentView(R.layout.btn1);
    
                }
            });
    
            btn2.setOnClickListener(new Button.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent myIntent = new Intent();
    
                    myIntent.setAction(Intent.ACTION_VIEW);
    
                    myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                    setContentView(R.layout.btn2);
    
                }
            });
    
    
            btn3.setOnClickListener(new Button.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent myIntent = new Intent();
    
                    myIntent.setAction(Intent.ACTION_VIEW);
    
                    myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                    setContentView(R.layout.btn3);
    
                }
            });
    
    
            btn4.setOnClickListener(new Button.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent myIntent = new Intent();
    
                    myIntent.setAction(Intent.ACTION_VIEW);
    
                    myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                    setContentView(R.layout.btn4);
    
                }
            });
    
    
            btn5.setOnClickListener(new Button.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent myIntent = new Intent();
    
                    myIntent.setAction(Intent.ACTION_VIEW);
    
                    myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                    setContentView(R.layout.btn5);
    
                }
            });
    
    
    }}
    

    希望这对您有所帮助,如果不是抱歉,但您做错了什么......

    【讨论】:

      【解决方案2】:

      詹姆斯牛顿所说的涉及多个按钮。这是一个按钮的方式,只是为了清楚起见:

          Button btn1 =(Button)findViewById(R.id.~btn1~);
      
      btn1.setOnClickListener(new Button.OnClickListener() {
      
          @Override
          public void onClick(View v) {
              Intent myIntent = new Intent();
      
              myIntent.setAction(Intent.ACTION_VIEW);
      
              myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
              setContentView(R.layout.~btn1~);
      
          }        
          });
      

      除了不需要更改任何内容之外,只需更改按钮 id 和 xml id 即可与您的应用程序一起使用。按钮 btn 只是将其标记为系统,因此您应该保留它,并且 btn1.setOnClickListener... 也可以保留。只需更改 ~ 内的部分。一定要换~!我可能不会没有警告,而其他一些人也不会。

      【讨论】:

        猜你喜欢
        • 2011-05-05
        • 1970-01-01
        • 2016-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-24
        • 2014-06-05
        • 1970-01-01
        相关资源
        最近更新 更多