第六章:android入门


目录
  • 安卓入门
    • 十、组件学习
      • 1、Activity
        • a、activity跳转和数据传输
        • b、跳转短信应用并填充内容
        • c、调用发送短信接口
        • d、activity生命周期
      • 2、Service
      • 3、Receiver
      • 4、备注

安卓入门

十、组件学习

1、Activity
a、activity跳转和数据传输
  • MainActivity
public class MainActivity extends AppCompatActivity {
    EditText et;
    RadioGroup rg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et = findViewById(R.id.et);
        rg = findViewById(R.id.rg);
    }

    public void submit(View view) {
        String name = et.getText().toString().trim();
        int gender = 0;
        if (rg.getCheckedRadioButtonId() == R.id.rb1) {
            gender = 1;
        } else if (rg.getCheckedRadioButtonId() == R.id.rb2) {
            gender = 2;
        } else if (rg.getCheckedRadioButtonId() == R.id.rb3) {
            gender = 3;
        }

        if ("".equals(name)) {
            Toast.makeText(this, "姓名不能为空", Toast.LENGTH_SHORT).show();
        } else if (gender == 0) {
            Toast.makeText(this, "性别为必选项", Toast.LENGTH_SHORT).show();
        } else {
            Intent intent = new Intent(this, ResultActivity.class);
            intent.putExtra("name", name);
            intent.putExtra("gender", gender);
            startActivity(intent);
        }
    }
}
  • ResultActivity
public class ResultActivity extends AppCompatActivity {
    EditText etName;
    EditText etGender;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);

        etName = findViewById(R.id.name);
        etGender = findViewById(R.id.gender);

        Intent intent = getIntent();
        String name = intent.getStringExtra("name");
        int gender = intent.getIntExtra("gender", 0);

        etName.setText(name);
        if (gender == 1) {
            etGender.setText("男");
        } else if (gender == 2) {
            etGender.setText("女");
        } else if (gender == 3) {
            etGender.setText("人妖");
        }
    }
}
b、跳转短信应用并填充内容
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView lv = findViewById(R.id.lv);
        String[] list = {"孟美岐", "黄婷婷", "佟丽娅"};
        ArrayAdapter adapter = new ArrayAdapter<>(this, R.layout.item, list);
        lv.setAdapter(adapter);

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent();
                intent.setAction("android.intent.action.SEND");
                intent.addCategory("android.intent.category.DEFAULT");
                intent.setType("text/plain");
                intent.putExtra("sms_body", list[position]);
                startActivity(intent);
            }
        });
    }
}
c、调用发送短信接口
d、activity生命周期
onCreate(->onRestart)->onStart->onResume->onPause->onStop->onDestroy
2、Service
  • MainActivity
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void startServiceBtn(View view) {
        startService(new Intent(this, MyService.class));
    }

    public void stopServiceBtn(View view) {
        stopService(new Intent(this, MyService.class));
    }

    private ServiceConnection connection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
        }
    };

    public void bindServiceBtn(View view) {
        bindService(new Intent(this, MyService.class), connection, Context.BIND_AUTO_CREATE);
    }

    public void unBindServiceBtn(View view) {
        unbindService(connection);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unbindService(connection);
    }
}
  • activity_main.xml


    

    

        
  • MyService
public class MyService extends Service {
    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public boolean onUnbind(Intent intent) {
        return super.onUnbind(intent);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}
3、Receiver
  • MainActivity
public class MainActivity extends AppCompatActivity {
    MyReceiver myReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myReceiver = new MyReceiver();
        IntentFilter itFilter = new IntentFilter();
        itFilter.addAction("com.example.receiver_flag_");
        registerReceiver(myReceiver, itFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(myReceiver);
    }

    public void sendReceiver(View view) {
        Intent intent = new Intent();
        intent.setAction("com.example.receiver_flag_");
        sendBroadcast(intent);
    }
}
  • activity_main.xml


    
  • MyReceiver
public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e("--->", "接收动态广播");
    }
}
4、备注
1、组件必须在清单文件里面注册