Intent

作者: _弓长_大人 | 来源:发表于2018-09-25 12:42 被阅读15次

    百度经验

    public class MainActivity extends AppCompatActivity {

    EditText editText;
    
    String name = "";
    int color = Color.WHITE;
    //列表
    ArrayList<Person>arrayList = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = findViewById(R.id.editText);
    
        arrayList.add(new Person("ft",22));
        arrayList.add(new Person("zn",22));
        arrayList.add(new Person("zhm",22));
    
        restore();//重新构造的时候恢复
    }
    
    public void switchName(View v) {
    
        //定义意图
        Intent intent = new Intent(this,Main2Activity.class);
        intent.putExtra("persons",arrayList);
        //正向传参
        //startActivity(intent);
    
        //请求码
        startActivityForResult(intent,1);
    
    }
    
    public void switchColor(View v) {
    
        //定义意图
        Intent intent = new Intent(this,Main3Activity.class);
    
        //请求码
        startActivityForResult(intent,2);
    
    }
    
    //反向传回参数
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch(requestCode)
        {
            case 1:
                name = data.getStringExtra("name");
                editText.setText(name);
                break;
            case 2:
                color = data.getIntExtra("color",Color.RED);
                View v = findViewById(R.id.layout);
                v.setBackgroundColor(color);
                break;
        }
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        save();
    }
    
    //保存状态
    public void save(){
        //保存数据SharedPreferences(只能存简单的字符,数组)
        SharedPreferences sharedPreferences = getSharedPreferences("mypre",MODE_PRIVATE);//随便给的名字mypre
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("name",name);
        editor.putInt("color",color);
        editor.commit();
    }
    
    //恢复
    public void restore(){
        SharedPreferences sharedPreferences = getSharedPreferences("mypre",MODE_PRIVATE);//随便给的名字mypre
        name = sharedPreferences.getString("name","");
        color = sharedPreferences.getInt("color",Color.WHITE);
        editText.setText(name);
        View v = findViewById(R.id.layout);
        v.setBackgroundColor(color);
    }
    

    }

    public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    
        TextView textView = findViewById(R.id.textView);
        ListView listView = findViewById(R.id.listView);
    
        final ArrayList<Person>arrayList =(ArrayList<Person>) getIntent().getSerializableExtra("persons");
        ArrayAdapter<Person> arrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,arrayList);
       listView.setAdapter(arrayAdapter);
    
       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
           public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               Person person = arrayList.get(position);
               Intent intent = new Intent();
               intent.putExtra("name",person.getName());
               setResult(1,intent);//1代表传值成功
               finish();
           }
       });
    }
    

    }

    public class Main3Activity extends AppCompatActivity {

    int []colors = {Color.RED,Color.GREEN,Color.BLUE,Color.GRAY};
    String []string_colors = {"RED","GREEN","BLUE","GRAY"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
    
        ListView listView = findViewById(R.id.ListView);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,string_colors);
        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                int color = colors[position];//拿到颜色
                Intent intent = new Intent();
                intent.putExtra("color",color);
                setResult(0,intent);
                finish();//结束界面
            }
        });
    }
    

    }

    相关文章

      网友评论

          本文标题:Intent

          本文链接:https://www.haomeiwen.com/subject/tztsdftx.html