• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Activity的生命周期和跳转

武飞扬头像
m0_57051785
帮助3

1.

在 Adapter 里面直接对控件做点击事件

@Override

public void onBindViewHolder(@NonNull XxxViewHolder holder, int position) {

    holder.控件名.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            // TODO:

        }

    });

}

在 Adapter 里写接口

public interface OnItemClickListener {

    void onItemClick(参数类型 参数名 , ...);

}

private OnItemClickListener mListener;

public XxxAdapter(Context context, OnItemClickListener listener) {

    mContext = context;

    mListener = listener;

}

@Override

public void onBindViewHolder(@NonNull XxxViewHolder holder, int position) {

    holder.控件名.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            mListener.onItemClick(content);

        }

    });

}

在 Activity 或 Fragment 上实现接口中定义的方法

public class XxxActivity extends AppCompatActivity implements XxxAdapter.OnItemClickListener

XxxAdapter adapter = new XxxAdapter(context, this);

@Override

public void onItemClick(String content) {

    // TODO:

}

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

activity_main1.xml

xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="50dp"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_margin="8dp"

    android:background="@drawable/common_bg"

    android:orientation="vertical">

    <TextView

        android:id="@ id/textView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_centerVertical="true"

        android:layout_marginLeft="8dp"

        android:gravity="center"

        android:text="TextView" />

</LinearLayout>

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:gravity="center"

    android:orientation="vertical"

    tools:context=".MainActivity2">

    <TextView

        android:id="@ id/textView7"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:text="这是第一个activity"

        android:textSize="40sp" />

   

</LinearLayout>

activity_main3.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity3">

    <TextView

        android:id="@ id/textView5"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:gravity="center"

        android:text="新闻详情"

        android:textSize="40dp" />

</LinearLayout>

新闻列表

ackage com.example.myworkgwl01;

import android.content.Context;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.app.Fragment;

import com.example.myworkgwl01.Myadapter;

import androidx.annotation.Nullable;

import androidx.recyclerview.widget.ItemTouchHelper;

import androidx.recyclerview.widget.LinearLayoutManager;

import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

import java.util.List;

public class contactFragment extends Fragment {

    private RecyclerView recyclerView;

    private Myadapter myadapter;

    private List<String> list = new ArrayList<>();

    private Context context;

    public contactFragment() {

        // Required empty public constructor

    }

    private void initData(){

        for(int i=0;i<30;i ) {

            list.add("最新新闻" i );

        }

    }

    private void initView3(){

        context=this.getActivity();

        myadapter=new Myadapter(list,context);

        LinearLayoutManager manager3=new LinearLayoutManager(context);

        manager3.setOrientation(LinearLayoutManager.VERTICAL);

        recyclerView.setAdapter(myadapter);

        recyclerView.setLayoutManager(manager3);

    }

    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

                             Bundle savedInstanceState) {

        // Inflate the layout for this fragment

//        return inflater.inflate(R.layout.contact, container, false);

        View view = inflater.inflate(R.layout.contact, container, false);

        recyclerView=view.findViewById(R.id.recycleview);

        initData();

        initView3();

        return view;

    }

}

Mainactivity2

package com.example.myworkgwl01;

import androidx.annotation.Nullable;

import androidx.appcompat.app.AppCompatActivity;

import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

public class MainActivity2 extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main2);

       

    }

    @Override

    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        if(resultCode==31){

            String state=data.getStringExtra("state");

            Log.d("life",state);

        }

    }

    @Override

    protected void onStart() {

        super.onStart();

        Log.d("life","activity1 is onStart...");

    }

    @Override

    protected void onPostResume() {

        super.onPostResume();

        Log.d("life","activity1 is onPostResume...");

    }

    @Override

    protected void onRestart() {

        super.onRestart();

        Log.d("life","activity1 is onReStart...");

    }

    @Override

    protected void onPause() {

        super.onPause();

        Log.d("life","activity1 is onPause...");

    }

    @Override

    protected void onStop() {

        super.onStop();

        Log.d("life","activity1 is onStop...");

    }

    @Override

    protected void onDestroy() {

        super.onDestroy();

        Log.d("life","activity1 is onDestroy...");

    }

    @Override

    public void finish() {

        super.finish();

        Log.d("life","activity1 is finish...");

    }

    @Override

    public void finishActivity(int requestCode) {

        super.finishActivity(requestCode);

        Log.d("life","activity1 is finishActivity...");

    }

}

Mainactivity3

package com.example.myworkgwl01;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

public class MainActivity3 extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main3);

    }

    @Override

    protected void onPostResume() {

        super.onPostResume();

        Log.d("life", "activity2 is onPostResume...");

    }

    @Override

    protected void onStart() {

        super.onStart();

        Log.d("life", "activity2 is onStart...");

    }

    @Override

    protected void onRestart() {

        super.onRestart();

        Log.d("life", "activity2 is onReStart...");

    }

    @Override

    protected void onStop() {

        super.onStop();

        Log.d("life", "activity2 is onStop...");

    }

    @Override

    protected void onDestroy() {

        super.onDestroy();

        Log.d("life", "activity2 is onDestroy...");

    }

    @Override

    protected void onPause() {

        super.onPause();

        Log.d("life", "activity2 is onPause...");

    }

    @Override

    public void finish() {

        super.finish();

        Log.d("life", "activity2 is finish...");

    }

    @Override

    public void finishActivity(int requestCode) {

        super.finishActivity(requestCode);

        Log.d("life", "activity2 is finishActivity...");

    }

}

2.

public class MainActivity extends Activity {

    private final static String TAG="MainActivity";

   

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        Button btnOpen=(Button)this.findViewById(R.id.btnOpen);

        btnOpen.setOnClickListener(new View.OnClickListener(){

            public void onClick(View v) {

               

                //第二个参数为请求码,可以根据业务需求自己编号

                startActivityForResult(new Intent(MainActivity.this, OtherActivity.class), 1);

            }

        });

    }

   

    /**

     * 为了得到传回的数据,必须在前面的Activity中(指MainActivity类)重写onActivityResult方法

     *

     * requestCode 请求码,即调用startActivityForResult()传递过去的值

     * resultCode 结果码,结果码用于标识返回数据来自哪个新Activity

     */

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        String result = data.getExtras().getString("result");//得到新Activity 关闭后返回的数据

        Log.i(TAG, result);

    }

}

public class OtherActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.other);

        Button btnClose=(Button)findViewById(R.id.btnClose);

        btnClose.setOnClickListener(new View.OnClickListener(){

            public void onClick(View v) {

                //数据是使用Intent返回

                Intent intent = new Intent();

                //把返回数据存入Intent

                intent.putExtra("result", "My name is linjiqin");

                //设置返回数据

                OtherActivity.this.setResult(RESULT_OK, intent);

                //关闭Activity

                OtherActivity.this.finish();

            }

        });

       

    }

}

Gitee 企业版学新通https://e.gitee.com/hubei-university_2/projects/394677/tasks/table?issue_type_category=task&issue=I5W99F

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfibfgf
系列文章
更多 icon
同类精品
更多 icon
继续加载