作业一
欢迎页面引导页
package com.example.day12_homewrok;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.example.day12_homewrok.Fragment.WelComeFragment;
import java.util.ArrayList;
import java.util.List;
public class WelcomeActivity extends AppCompatActivity {
private ViewPager viewPager;
private TextView textView_page;
private Button button_in;
private List<WelComeFragment> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
initData();
initView();
}
private void initData() {
for (int i = 0; i < 3; i++) {
WelComeFragment fragment = new WelComeFragment();
list.add(fragment);
}
}
private void initView() {
viewPager = findViewById(R.id.view_pager);
textView_page = findViewById(R.id.text_page);
button_in = findViewById(R.id.button_in);
PagerAdapter();
PageListener();
}
private void PageListener() {
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
if(i == list.size()-1){
button_in.setVisibility(View.VISIBLE);
}else{
button_in.setVisibility(View.GONE);
}
textView_page.setText((i+1)+"/3");
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
button_in.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
});
}
private void PagerAdapter() {
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
}
}
登录主页面
package com.example.day12_homewrok;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
private EditText editLogUser;
private EditText editLogPwd;
private ContentResolver contentResolver;
private Uri uri;
private boolean flag = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentResolver = getContentResolver();
uri = Uri.parse("content://pan.sql1");
initView();
SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
boolean isLogin = one.getBoolean("isLogin",false);
if(isLogin){
Intent intent = new Intent(this, ShowActivity.class);
startActivity(intent);
}
}
private void initView() {
editLogUser = (EditText) findViewById(R.id.edit_log_user);
editLogPwd = (EditText) findViewById(R.id.edit_log_pwd);
}
public void click(View view) {
switch (view.getId()){
case R.id.button_login:
String pwd = editLogPwd.getText().toString();
String user = editLogUser.getText().toString();
editListener(user,pwd);
break;
case R.id.button_toRe:
Intent intent = new Intent(this, RegisterActivity.class);
startActivity(intent);
editLogUser.setText("");
editLogPwd.setText("");
break;
}
}
private void sql_query(String user, String pwd) {
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if(cursor != null){
while(cursor.moveToNext()){
String old_user = cursor.getString(cursor.getColumnIndex("user"));
String old_pwd = cursor.getString(cursor.getColumnIndex("pwd"));
if(user.equals(old_user) && pwd.equals(old_pwd)){
flag = true;
}
}
cursor.close();
}
if(flag){
Toast.makeText(this, "登陆成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this,ShowActivity.class);
SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
SharedPreferences.Editor edit = one.edit();
edit.putBoolean("isLogin",true);
edit.commit();
startActivity(intent);
}else{
Toast.makeText(this, "密码或用户名不正确!", Toast.LENGTH_SHORT).show();
return;
}
}
private void editListener(String user, String pwd) {
boolean mat1 = Pattern.matches( "^[0-9A-Za-z]{12,18}$",user);
boolean mat2 = Pattern.matches( "^/w{5,11}$",pwd);
if(!mat1){
Toast.makeText(this, "用户名格式不正确!", Toast.LENGTH_SHORT).show();
return;
}
if(!mat2){
Toast.makeText(this, "密码格式不正确", Toast.LENGTH_SHORT).show();
return;
}
if(user == null || user.equals("")){
Toast.makeText(this, "用户名不能为空!", Toast.LENGTH_SHORT).show();
return;
}
if(pwd == null || pwd.equals("")){
Toast.makeText(this, "密码不能为空!", Toast.LENGTH_SHORT).show();
return;
}
sql_query(user,pwd);
}
}
注册主页面
package com.example.day12_homewrok;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Pattern;
public class RegisterActivity extends AppCompatActivity {
private EditText editUser;
private EditText editPwd;
private EditText editRePwd;
private Button button_select;
private ContentResolver contentResolver;
private Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
contentResolver = getContentResolver();
uri = Uri.parse("content://pan.sql1");
initView();
}
private void initView() {
editUser = (EditText) findViewById(R.id.edit_user);
editPwd = (EditText) findViewById(R.id.edit_pwd);
editRePwd = (EditText) findViewById(R.id.edit_rePwd);
button_select = findViewById(R.id.button_select);
button_select.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if(cursor != null){
while(cursor.moveToNext()){
String user = cursor.getString(cursor.getColumnIndex("user"));
String pwd = cursor.getString(cursor.getColumnIndex("pwd"));
Toast.makeText(RegisterActivity.this, user+"-"+pwd, Toast.LENGTH_SHORT).show();
}
cursor.close();
}
}
});
}
public void click(View view) {
String user = editUser.getText().toString();
String pwd = editPwd.getText().toString();
String rePwd = editRePwd.getText().toString();
editListener(user,pwd,rePwd);
}
private void editListener(String user, String pwd, String rePwd) {
boolean mat1 = Pattern.matches( "^[0-9A-Za-z]{12,18}$",user);
boolean mat2 = Pattern.matches( "^/w{12,18}$",pwd);
Toast.makeText(this, mat1+"-"+mat2, Toast.LENGTH_SHORT).show();
if(!mat1){
Toast.makeText(this, "用户名格式不正确!", Toast.LENGTH_SHORT).show();
return;
}
if(!mat2){
Toast.makeText(this, "密码格式不正确!", Toast.LENGTH_SHORT).show();
return;
}
if(user.equals("") || user == null){
Toast.makeText(this, "用户名不能为空!", Toast.LENGTH_SHORT).show();
return;
}
if(pwd.equals("") || pwd == null){
Toast.makeText(this, "密码不能为空!", Toast.LENGTH_SHORT).show();
return;
}
if(!(pwd.equals(rePwd))){
Toast.makeText(this, "两次密码输入不正确", Toast.LENGTH_SHORT).show();
return;
}
getInSql(user,pwd);
}
private void getInSql(String user, String pwd) {
ContentValues values = new ContentValues();
values.put("user",user);
values.put("pwd",pwd);
getContentResolver().insert(uri,values);
Toast.makeText(this, "注册成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
联系人以及拨号页面
package com.example.day12_homewrok;
import android.Manifest;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ShowActivity extends AppCompatActivity {
private ListView listView;
private ContentResolver contentResolver;
private List<Map<String,Object>> telList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
listView = findViewById(R.id.list_view);
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS,Manifest.permission.WRITE_CONTACTS},100);
contentResolver = getContentResolver();
initView();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if(requestCode == 100 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
initData();
}
}
private void initData() {
Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
if(cursor != null){
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Map<String,Object> map = new HashMap<>();
map.put("name",name);
map.put("tel",number);
telList.add(map);
}
cursor.close();
}
listView.setAdapter(new MyAdapter());
}
private void initView() {
listViewEntity();
}
private void listViewEntity() {
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + telList.get(position).get("tel").toString()));
startActivity(intent);
}
});
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return telList.size();
}
@Override
public Object getItem(int position) {
return telList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = getLayoutInflater().inflate(R.layout.layout_telephony,null);
holder.textView_name = convertView.findViewById(R.id.text_name);
holder.textView_tel = convertView.findViewById(R.id.text_tel);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.textView_name.setText(telList.get(position).get("name").toString());
holder.textView_tel.setText(telList.get(position).get("tel").toString());
return convertView;
}
class ViewHolder{
TextView textView_name;
TextView textView_tel;
}
}
}
作业二 2个案例
第一个案例
mainActivity
package com.example.app2;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.example.app2.MyReceivers.MyFReceiver;
public class MainActivity extends AppCompatActivity {
private Button buttonSend;
private LocalBroadcastManager manager;
private MyFReceiver myFReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonSend = (Button) findViewById(R.id.button_send);
manager = LocalBroadcastManager.getInstance(this);
myFReceiver = new MyFReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.pan.re");
manager.registerReceiver(myFReceiver,filter);
}
public void click(View view) {
Intent intent = new Intent();
intent.setAction("com.pan.re");
manager.sendBroadcast(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
manager.unregisterReceiver(myFReceiver);
}
}
广播接收者
package com.example.app2.MyReceivers;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import com.example.app2.R;
public class MyFReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Notification.Builder builder = new Notification.Builder(context);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentText("我是动态广播哒!");
builder.setContentTitle("系统提示");
builder.setPriority(Notification.PRIORITY_MAX);
builder.setDefaults(Notification.DEFAULT_ALL);
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1,builder.build());
}
}
第一个案例的布局xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<Button
android:onClick="click"
android:id="@+id/button_send"
android:text="广播"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
第二个案例
package com.example.app2;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.example.app2.MyReceivers.MySReceiver;
public class Main2Activity extends AppCompatActivity {
private ImageView imageView;
private MySReceiver mySReceiver;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
imageView = findViewById(R.id.image_id);
mySReceiver = new MySReceiver(handler,imageView);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("xxx.pan");
registerReceiver(mySReceiver,intentFilter);
}
public void click(View view) {
Intent intent = new Intent();
intent.setAction("xxx.pan");
sendBroadcast(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mySReceiver);
}
}
第二个案例
第二个Activity
package com.example.app2;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.example.app2.MyReceivers.MySReceiver;
public class Main2Activity extends AppCompatActivity {
private ImageView imageView;
private MySReceiver mySReceiver;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
imageView = findViewById(R.id.image_id);
mySReceiver = new MySReceiver(handler,imageView);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("xxx.pan");
registerReceiver(mySReceiver,intentFilter);
}
public void click(View view) {
Intent intent = new Intent();
intent.setAction("xxx.pan");
sendBroadcast(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mySReceiver);
}
}
第二个案例的广播接收者
package com.example.app2.MyReceivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.widget.ImageView;
import com.example.app2.R;
public class MySReceiver extends BroadcastReceiver {
private Handler handler;
private ImageView imageView;
public MySReceiver(Handler handler, ImageView imageView) {
super();
this.handler = handler;
this.imageView = imageView;
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("xxx.pan")) {
handler.post(new Runnable() {
@Override
public void run() {
imageView.setImageResource(R.mipmap.youyou);
}
});
}
}
}
第二个案例布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".Main2Activity">
<Button
android:text="更新图片"
android:id="@+id/button_send2"
android:onClick="click"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_centerInParent="true"
android:id="@+id/image_id"
android:src="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>