欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android实现界面跳转

程序员文章站 2022-03-13 21:03:19
...

1. 主界面
  • 新建一个AndroidStudio项目

  • 建好过后默认是一个 hello world 项目,我们不使用它提供的文件,对于我们需要使用的代码,我们自己建立文件。

  • app/src/main/java/com.example.csdn_view_demo/ 下新建空Activity:viewdemo

  • 将我们新建的Activity设为默认启动的Activity

    • 打开AndroidManifest.xml
    • 找到如下代码:
        <activity android:name=".viewdemo"></activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    
    • 改为:
        <activity android:name=".viewdemo">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity"></activity>
    

    第一行的<activity android:name=".viewdemo"></activity>是我们新建Activity:viewdemo 的时候自动生成的,
    第二行<activity android:name=".MainActivity">就是这个项目的默认启动Activity
    我们将<intent-filter>1代码段剪贴到<activity android:name=".viewdemo"></activity>viewdemo就成了默认启动的Activity

    • 打开我们新建的 viewdemo.java,其中 setContentView(R.layout.activity_viewdemo); 表示这个Activity启动后调用的布局文件就是activity_viewdemo.xml,我们在 activity_viewdemo.xml 添加一个Button:
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Me!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    

    运行一下,出现下面效果表示项目运行时正常启动了我们设置的Activity和xml布局文件,可以进入下一步的代码编写工作了
    Android实现界面跳转


2. 实现跳转
  • 此时这个Button并不能工作,那是因为它并没有任何点击事件,我们在viewdemo.java中设置它的点击事件:

    public class viewdemo extends AppCompatActivity implements View.OnClickListener{
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewdemo);
        
        Button register = (Button)findViewById(R.id.button);		//关联xml中的button
        register.setOnClickListener(this);							//设置监听
    }
    
    @Override														//重载onClick
    public void onClick(View view){									//点击事件
       if(view.getId()==R.id.button){								//判断执行onClick的组件id
            Intent intent = new Intent(this,MainActivity.class);	//设置跳转到MainActivity的intent
            startActivity(intent);									//执行跳转
        }
    }
    }
    

    我们设置监听事件的步骤是:

    1. 定义一个Button:register关联xml中的Button:Button register = (Button)findViewById(R.id.button);
    2. 对register进行监听:register.setOnClickListener(this);
      方法setOnClickListener在控件View中,所以要implements View.OnClickListener2
    3. 重载函数onClick
    4. 在onClick中监听button的点击事件:if(view.getId()==R.id.button)
    5. 定义新的Activity并执行实现跳转:Intent intent = new Intent(this,MainActivity.class); startActivity(intent);

    我们再重新运行此程序,点击按钮,发现跳转到到了 hello world! 的界面,说明成功了


3. 其它方式
  • 实现跳转的另一种方式,原理都是一样的,就是写法不同
public class viewdemo extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewdemo);
        Button register = (Button)findViewById(R.id.button);
        register.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                if (view.getId()==R.id.button){
                    Intent intent = new Intent(viewdemo.this,MainActivity.class);
                    startActivity(intent);
                }
            }
        });
    }
}

4. Github下载

  1. 关于intent-filter的介绍:intent-filter属性介绍 ↩︎

  2. 关于implements的介绍:Android:JAVA语言extends和implements用法的学习 ↩︎