栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android(X)多页面

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android(X)多页面

注意
  1. 添加setContentView(R.layout.activity_main);
页面的跳转
  1. 在安卓中每个页面我们称为一个Activity,Activity之间使用Intent进行通信

  2. 打开页面

    Intent intent = new Intent(NewAvtivity.this,ThirdPage.class);
     startActivity(intent);
    
  3. 关闭页面

      finish(); //关闭当前Activity
    
页面间通信(主页面到其他页面)
  1. 页面间使用Bundle进行通信,所有的数据都传输到Bundle里面

  2. 发送方(按键监听函数)

     button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String input_text = ((EditText)findViewById(R.id.input_sth)).getText().toString();
                    Bundle bundle = new Bundle();
                    bundle.putCharSequence("input",input_text); //将信息放入Bundle
                    Intent intent = new Intent(MainActivity.this,NewAvtivity.class);
                    intent.putExtras(bundle);//将bundle放到intent里面
                    startActivity(intent);//开启另一个页面
                }
            });
    
  3. 接受方(文本框)

            Intent intent = getIntent(); //实例化Intent
            Bundle bundle = intent.getExtras();//实例化Bundle,获取消息
            TextView textView = (TextView)findViewById(R.id.new_page_text);
            textView.setText(bundle.getString("input"));//将消息放入文本框中
    
页面间通信(其他页面到主页面)
  1. 发送方

    but1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = getIntent();
                    Bundle bundle = new Bundle();
                    bundle.putString("username",username.getText().toString());
                    bundle.putString("passwd",passwd.getText().toString());
    
                    intent.putExtras(bundle);
                    setResult(0x11,intent);
                    finish();
                }
            });
    
  2. 接收方

    public class MainActivity extends Activity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button openbut = (Button)findViewById(R.id.open_new);
            openbut.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(MainActivity.this,NewAvtivity.class);
                    startActivityForResult(intent,0x11);
    
                }
            });
    
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode==0x11&&resultCode==0x11){
                Bundle bundle = data.getExtras();
                String str1 = bundle.getString("username");
                String str2 = bundle.getString("passwd");
                TextView un = (TextView) findViewById(R.id.username);
                TextView ps = (TextView) findViewById(R.id.passwd);
                un.setText(str1);
                ps.setText(str2);
    
    
            }
        }
    }
    
创建监听器类
View.OnClickListener l = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            
        }
    }
多页面和Frame
  1. 两个帧java文件:新建类继承Frame,重写 onCreateView方法,写两个这样的类
package com.example.activity;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

public class me_fragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view  =inflater.inflate(R.layout.me_fragment,null);
        return view;
    }
}
  1. 主java文件
package com.example.activity;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView1 = findViewById(R.id.img1);//获取控件
        ImageView imageView2 = findViewById(R.id.img2);//获取控件

        imageView1.setOnClickListener(l);//设置监听器
        imageView2.setOnClickListener(l);//设置监听器


    }
    View.OnClickListener l = new View.OnClickListener() {//监听器
        @Override
        public void onClick(View v) {
            FragmentManager fm = getSupportFragmentManager();//帧管理器
            FragmentTransaction ft = fm.beginTransaction();
            Fragment f=null;//实例化帧对象指向空

            switch (v.getId()){
                case R.id.img1://如果第一个方块被点击
                    f= new wechat_fragment();//导入新的帧
                    break;
                case R.id.img2://如果第二个方块被点击
                    f= new me_fragment();//导入新的帧
                    break;

            }
            ft.replace(R.id.fragment,f);//替换
            ft.commit();//提交
      }
    };
}
  1. 两个帧xml文件

    
    
        
    
    
    
  2. 主xml文件(开始的帧布局采用的是其中一个帧xml)





   

      
      
   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/933089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号