Android的添加新的XML和类 [英] Android adding new xml and class

查看:157
本文介绍了Android的添加新的XML和类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我添加一个新的XML布局,我不能把它连接到Java类。

工艺;

  • 在我加入一个新的XML布局
  • 在我加入一个新的Java类
  • 编辑AndroidManifest.xml中
  • 添加的setContentView(R.layout.second_layout);我的Java类。

我尝试返回main_activity使用button.I不知道问题是code或XML和类网页连接。还有什么,我该怎么办?

second_layout_java.java

 进口android.os.Bundle;
进口android.app.Activity;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.ImageView;
进口android.widget.Spinner;

公共类second_layout_java扩展活动
{
    @覆盖
    保护无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.second_layout);
        //
        按钮显示=(按钮)findViewById(R.id.show_button);

        show.setOnClickListener(新View.OnClickListener()
        {
            @覆盖
            公共无效的onClick(视图v)
            {
                的setContentView(R.layout.activity_main);
            }
        });
    }

    @覆盖
    公共布尔onCreateOptionsMenu(功能菜单){
        //充气菜单;这增加了项目操作栏,如果它是present。
        。getMenuInflater()膨胀(R.menu.main,菜单);
        返回true;
    }
}
 

AndroidManifest.xml中//我加入了新的XML的新活动

 <活动
机器人:名称=com.example.app.second_layout
机器人:标签=@字符串/ APP_NAME>
<意向滤光器>
<作用机器人:名称=android.intent.action.DIGER/>
<类机器人:名称=android.intent.category.DEFAULT/>
&所述; /意图滤光器>
< /活性GT;
 

解决方案

好了,第一个问题是,你不切换活动通过只是改变了布局文件的setContentView()。当然,你可以更改内容来看这种方式,但它不是通常是一个好主意,在大多数情况下并不实用。您需要使用意图开始一个新的活动

所以假设活动您要重返被称为 MainActivity ,您的的onClick()看起来会像这样

  show.setOnClickListener(新View.OnClickListener()
    {
        @覆盖
        公共无效的onClick(视图v)
        {
            //创建意图对象
            意图I =新的意图(second_layout_java.this,MainActivity.class)
            //调用startActivity()函数来启动Actiivty
            startActivity(ⅰ);
        }
    });
 

在这种情况下,如果你还没有通过调用完成你的previous 活动 完成()就可以了,在指定的的manifest.xml 来跟不上历史,或者以其他方式,那么你可以简单的叫完成()的onClick(),你将被带回你的previous 活动

要遵循Java的命名标准,这一类的名字应该是大小写混合的,每个字为资本,摆脱了下划线的第一个字母。这是没有必要的,但是标准。因此,它可能看起来像

 公共类SecondActivity扩展活动
 

I'm adding a new xml layout and I couldn't connect it to java class.

Process;

  • I'm adding a new xml layout
  • I'm adding a new java class
  • Editing AndroidManifest.xml
  • adding setContentView(R.layout.second_layout); to my java class.

I try to return main_activity with using button.I don't know problem is code or xml and class pages connections. Is there anything else I'm going to do?

second_layout_java.java

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;

public class second_layout_java extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
        //
        Button show = (Button)findViewById(R.id.show_button);

        show.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                setContentView(R.layout.activity_main);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

AndroidManifest.xml //I'm adding a new activity for new xml

<activity
android:name="com.example.app.second_layout"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.DIGER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

解决方案

Ok, the first problem is that you don't switch Activities by just changing the layout file with setContentView(). Sure, you can change the content view this way but its not typically a good idea and not practical in most situations. You need to use Intents to start a new Activity.

So assuming that the Activity you are trying to "return" to is called MainActivity, your onClick() would look more like this

 show.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // create the Intent object
            Intent i = new Intent(second_layout_java.this, MainActivity.class)  
            // call the startActivity() function to start the Actiivty
            startActivity(i);
        }
    });

In this situation, if you haven't finished your previous Activity by calling finish() on it, specifying in your manifest.xml to not keep history, or in some other way, then you could simply call finish() in your onClick() and you would be brought back to your previous Activity.

To follow Java naming standards, this class name should be mixed-case with the first letter of each word being capitalized and get rid of the underscores. This isn't necessary but is the standard. So it might look something like

public class SecondActivity extends Activity

这篇关于Android的添加新的XML和类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆