第三章:
- 多项选择(CheckBox)
package com.example.review2_1;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import static com.example.review2_1.R.drawable.dimond1;
public class MainActivity extends Activity {
Button bt;
CheckBox op1,op2,op3,op4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
op1=findViewById(R.id.checkBox);
op2=findViewById(R.id.checkBox2);
op3=findViewById(R.id.checkBox3);
op4=findViewById(R.id.checkBox4);
bt=(Button)findViewById(R.id.button);
bt.setOnClickListener(new View.OnClickListener() {
String ans="";
@SuppressLint("WrongConstant")
@Override
public void onClick(View v) {
ans="";
if(op1.isChecked()){
ans=ans+op1.getText();
}
if(op2.isChecked()){
ans=ans+op2.getText();
}
if(op3.isChecked()){
ans=ans+op3.getText();
}
if(op4.isChecked()){
ans=ans+op4.getText();
}
Toast.makeText(getApplicationContext(),
"你喜欢的明星是"+ans,1).show();
}
});
}
}
<?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=".MainActivity"
android:orientation="vertical"
android:id="@+id/back">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="我喜欢的明星是" />
<CheckBox
android:id="@+id/checkBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="张艺兴" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="檀健次" />
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="和马" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="李栋旭" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确认" />
</LinearLayout>
- 单选按钮(RadioButton)
放在RadioGroup中实现单选
package com.example.review2_1;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import static com.example.review2_1.R.drawable.dimond1;
public class MainActivity extends Activity {
Button bt;
RadioButton op1,op2,op3,op4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
op1=findViewById(R.id.checkBox);
op2=findViewById(R.id.checkBox2);
op3=findViewById(R.id.checkBox3);
op4=findViewById(R.id.checkBox4);
bt=(Button)findViewById(R.id.button);
bt.setOnClickListener(new View.OnClickListener() {
String ans="";
@SuppressLint("WrongConstant")
@Override
public void onClick(View v) {
ans="";
if(op1.isChecked()){
ans=op1.getText().toString();
}else if(op2.isChecked()){
ans=op2.getText().toString();
}else if(op3.isChecked()){
ans=op3.getText().toString();
}else if(op4.isChecked()){
ans=op4.getText().toString();
}
Toast.makeText(getApplicationContext(),
"你喜欢的明星是"+ans,1).show();
}
});
}
}
<?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=".MainActivity"
android:orientation="vertical"
android:id="@+id/back">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="我喜欢的明星是" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/checkBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="张艺兴" />
<RadioButton
android:id="@+id/checkBox2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="檀健次" />
<RadioButton
android:id="@+id/checkBox3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="和马" />
<RadioButton
android:id="@+id/checkBox4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="李栋旭" />
</RadioGroup>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确认" />
</LinearLayout>
- 自动完成文本(AutoCompleteTextView)
- ArrayAdapter
- SimpleAdapter
- SimpleCursorAdapter
- BaseAdapter
package com.example.review2_1;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import static com.example.review2_1.R.drawable.dimond1;
public class MainActivity extends Activity {
AutoCompleteTextView tv;
String []tel={"2222222233","123333333333","123444"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(AutoCompleteTextView)findViewById(R.id.tv);
ArrayAdapter<String>adapter=new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_dropdown_item_1line,
tel);
tv.setAdapter(adapter);
}
}
<?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=".MainActivity"
android:orientation="vertical"
android:id="@+id/back">
<AutoCompleteTextView
android:id="@+id/tv"
android:layout_width="342dp"
android:layout_height="wrap_content" />
</LinearLayout>
- 下拉列表(Spinner)
package com.example.review2_1;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import static com.example.review2_1.R.drawable.dimond1;
public class MainActivity extends Activity {
Spinner sp;
ArrayList<String>color =new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp=(Spinner)findViewById(R.id.sp);
color.add("红色");
color.add("绿色");
color.add("黄色");
color.add("白色");
ArrayAdapter<String>adapter=new ArrayAdapter<String>(MainActivity.this,
android.R.layout.select_dialog_singlechoice,//单选按钮
color);
sp.setAdapter(adapter);
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@SuppressLint("WrongConstant")
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 0:
Toast.makeText(getApplicationContext(),"Red",1).show();
break;
case 1:
Toast.makeText(getApplicationContext(),"Green",1).show();
break;
case 2:
Toast.makeText(getApplicationContext(),"Yellow",1).show();
break;
case 3:
Toast.makeText(getApplicationContext(),"White",1).show();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
<?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=".MainActivity"
android:orientation="vertical"
android:id="@+id/back">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sp"></Spinner>
</LinearLayout>
- 列表视图(ListView)
- 对话框(Toast)显示时间有限
package com.example.review2_1;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import static com.example.review2_1.R.drawable.dimond1;
public class MainActivity extends Activity {
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=findViewById(R.id.textView);
tv.setOnClickListener(new View.OnClickListener() {
@SuppressLint("WrongConstant")
@Override
public void onClick(View v) {
String s=tv.getText().toString();
Toast.makeText(MainActivity.this,s,1).show();
}
});
}
}
<?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=".MainActivity"
android:orientation="vertical"
android:id="@+id/back">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
- 对话框(AlertDialog)Protected
package com.example.review2_1;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import static com.example.review2_1.R.drawable.dimond1;
public class MainActivity extends Activity {
String[] data1=new String[]{"123443545@qq.com","674842892@qq.com","9587659889@163.com"
};
String[] data2=new String[]{"123445545@qq.com","646542892@qq.com","99889@163.com"};
AutoCompleteTextView match,match2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
match=(AutoCompleteTextView)findViewById(R.id.editText);
match2=(AutoCompleteTextView)findViewById(R.id.editText2);
ArrayAdapter<String> adapter1=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_dropdown_item_1line,data1);
match.setAdapter(adapter1);
ArrayAdapter<String> adapter2=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_dropdown_item_1line,data2);
match2.setAdapter(adapter2);
}
}
<?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=".MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="收件人" />
<AutoCompleteTextView
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="主题" />
<AutoCompleteTextView
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/editText3"
android:layout_width="match_parent"
android:layout_height="631dp"
android:singleLine="false"/>
</LinearLayout>
</LinearLayout>
第七章:数据存储
数据存储方式:
1.SharedPerferences 本质是xml文件 key-value
2.文件存储
3.SQLite数据库
4.ContentProvider
5.网络存储
SharedPreferences
- getSharedPreferences
- putxxx
- commit:保存putxxx的数据
- getxxx
文件存储
- 手机内存的私有数据
- SDCard的公有数据:先判断SDCard的状态 可读写
File file = new File (Context.geyFilesDir,“test.txt”);
SQLite
- 五大优点:轻量级 无配置 跨平台 语言无关接口 事务性
- openOrCreateDatabase()自动检测是否存在此数据库
- Cursor :返回值,相当于结果集ResultSet
- SQLiteOpenHelper帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承他,并实现他的onCreate,onUpgrade方法
SharedPreferences保存数据的步骤。
(1)根据Context的getSharedPreferences()方法获取SharedPreferences对象;
(2)利用edit()方法获取Editor对象;
(3)通过Editor对象存储key-value键值对数据
(4)通过commit()方法提交数据