@[toc](作业)
Activity
引导
package com.example.day1018;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.example.day1018.fragment.Wel_Fragment;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
public class Wel_Activity extends AppCompatActivity {
private ViewPager viewpager;
private TextView time;
private TextView myCalss;
private TextView name;
private List<Fragment> lists = new ArrayList<>();
private int index = 0;
private int num = 3;
private Timer timer, timer1;
@SuppressLint("HandlerLeak")
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 110) {
viewpager.setCurrentItem(index);
index++;
if (index == lists.size()) {
index = 0;
timer.cancel();
getTimer();
}
}
if (msg.what == 100) {
num--;
time.setText("倒计时:" + num + "秒");
if (num == 0) {
timer1.cancel();
Intent intent = new Intent(Wel_Activity.this, MainActivity.class);
startActivity(intent);
finish();
}
}
}
};
private void getTimer() {
timer1 = new Timer();
timer1.schedule(new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(100);
}
}, 0, 1000);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wel_);
viewpager = (ViewPager) findViewById(R.id.viewpager);
time = (TextView) findViewById(R.id.time);
myCalss = (TextView) findViewById(R.id.myCalss);
name = (TextView) findViewById(R.id.name);
for (int i = 0; i < 3; i++) {
Wel_Fragment fragment = new Wel_Fragment();
Bundle bundle = new Bundle();
bundle.putString("msg", "这是第" + (i + 1) + "个fragment");
fragment.setArguments(bundle);
lists.add(fragment);
}
viewpager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return lists.get(i);
}
@Override
public int getCount() {
return lists.size();
}
});
viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
if (i == lists.size()-1) {
time.setVisibility(View.VISIBLE);
myCalss.setVisibility(View.VISIBLE);
name.setVisibility(View.VISIBLE);
} else {
time.setVisibility(View.GONE);
myCalss.setVisibility(View.GONE);
name.setVisibility(View.GONE);
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(110);
}
}, 0, 1000);
}
}
主页面
package com.example.day1018;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import com.example.day1018.fragment.NotesFragment;
import com.example.day1018.fragment.Person_Fragment;
import com.example.day1018.fragment.Search_Fragment;
import com.example.day1018.fragment.Write_Fragment;
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private RadioGroup radioGroup;
private RadioButton diary;
private RadioButton search;
private RadioButton write;
private RadioButton addList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.viewpager);
radioGroup = findViewById(R.id.radio_G);
diary = (RadioButton) findViewById(R.id.diary);
search = (RadioButton) findViewById(R.id.search);
write = (RadioButton) findViewById(R.id.write);
addList = (RadioButton) findViewById(R.id.add_list);
final FragmentManager manager = getSupportFragmentManager();
final FragmentTransaction transaction = manager.beginTransaction();
final NotesFragment notesFragment = new NotesFragment();
final Search_Fragment searchFragment = new Search_Fragment();
final Write_Fragment writeFragment = new Write_Fragment();
final Person_Fragment personFragment = new Person_Fragment();
transaction.add(R.id.list01, notesFragment);
transaction.add(R.id.list01, searchFragment);
transaction.add(R.id.list01, writeFragment);
transaction.add(R.id.list01, personFragment);
transaction.hide(searchFragment);
transaction.hide(writeFragment);
transaction.hide(personFragment);
transaction.commit();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.diary:
FragmentManager manager1 = getSupportFragmentManager();
FragmentTransaction transaction1 = manager1.beginTransaction();
transaction1.hide(searchFragment);
transaction1.hide(writeFragment);
transaction1.hide(personFragment);
transaction1.show(notesFragment);
transaction1.commit();
break;
case R.id.search:
FragmentManager manager2 = getSupportFragmentManager();
FragmentTransaction transaction2 = manager2.beginTransaction();
transaction2.hide(notesFragment);
transaction2.hide(writeFragment);
transaction2.hide(personFragment);
transaction2.show(searchFragment);
transaction2.commit();
break;
case R.id.write:
FragmentManager manager3 = getSupportFragmentManager();
FragmentTransaction transaction3 = manager3.beginTransaction();
transaction3.hide(searchFragment);
transaction3.hide(searchFragment);
transaction3.hide(personFragment);
transaction3.show(writeFragment);
transaction3.commit();
break;
case R.id.add_list:
FragmentManager manager4 = getSupportFragmentManager();
FragmentTransaction transaction4 = manager4.beginTransaction();
transaction4.hide(searchFragment);
transaction4.hide(writeFragment);
transaction4.hide(notesFragment);
transaction4.show(personFragment);
transaction4.commit();
break;
}
}
});
// new MyProvider();
}
}
fragment
日记
package com.example.day1018.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.example.day1018.R;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class NotesFragment extends Fragment {
private List<String> lists = new ArrayList<>();
private MyAdapter adapter;
public NotesFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_notes, container, false);
ListView listView = inflate.findViewById(R.id.list_view);
adapter = new MyAdapter(getActivity());
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
return inflate;
}
}
搜索
package com.example.day1018.fragment;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import com.example.day1018.Bean.Person;
import com.example.day1018.R;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class Search_Fragment extends Fragment {
private EditText searchEdit;
private Button searchBut;
private ListView listview2;
private List<String> lists = new ArrayList<>();
private MyAdapter3 adapter3 ;
public Search_Fragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_search_, container, false);
searchEdit = (EditText) inflate.findViewById(R.id.search_edit);
searchBut = (Button) inflate.findViewById(R.id.search_but);
listview2 = (ListView) inflate.findViewById(R.id.listview2);
searchBut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = searchEdit.getText().toString();
ContentResolver resolver = getActivity().getContentResolver();
Uri uri = Uri.parse("content://com.lae.exe");
Cursor cursor = resolver.query(uri, new String[]{"con = %?%"}, s, null, null);
if(cursor != null){
while (cursor.moveToNext()){
String con = cursor.getString(cursor.getColumnIndex("con"));
lists.add(con);
adapter3 = new MyAdapter3(getActivity(),lists);
}
}
}
});
return inflate;
}
}
编写
package com.example.day1018.fragment;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.example.day1018.MyReceiver;
import com.example.day1018.MyReceiver2;
import com.example.day1018.R;
/**
* A simple {@link Fragment} subclass.
*/
public class Write_Fragment extends Fragment {
public Write_Fragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_write_, container, false);
final TextView textView_title = inflate.findViewById(R.id.edit_title);
final TextView textView_tv = inflate.findViewById(R.id.edit_tv);
Button button = inflate.findViewById(R.id.save);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentResolver resolver = getActivity().getContentResolver();
Uri uri = Uri.parse("content://com.lae.exe");
String title = textView_title.getText().toString();
String content = textView_tv.getText().toString();
if(title != null && content != null){
ContentValues values = new ContentValues();
values.put("con",content);
resolver.insert(uri,values);
MyReceiver2 receiver2 = new MyReceiver2();
Intent intent = new Intent();
intent.setAction("com.lae.exe");
Bundle bundle = new Bundle();
bundle.putBoolean("isFre",true);
intent.putExtras(bundle);
getActivity().sendBroadcast(intent);
}
}
});
return inflate;
}
}
联系人
package com.example.day1018.fragment;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.example.day1018.Bean.Person;
import com.example.day1018.MyProvider;
import com.example.day1018.MyReceiver;
import com.example.day1018.R;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class Person_Fragment extends Fragment {
private List<Person> lists = new ArrayList<>();
private MyAdapter4 adapter;
@SuppressLint("ValidFragment")
public Person_Fragment(List<Person> lists, MyAdapter4 adapter) {
this.lists = lists;
this.adapter = adapter;
}
public Person_Fragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_person_, container, false);
ListView listView = inflate.findViewById(R.id.listview_4);
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS}, 100);
ContentResolver resolver = getActivity().getContentResolver();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
Cursor cursor = resolver.query(uri, null, 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));
Person person = new Person();
person.setName(name);
person.setNumber(number);
lists.add(person);
}
cursor.close();
}
adapter = new MyAdapter4(lists, getActivity());
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
MyReceiver receiver = new MyReceiver();
Intent intent = new Intent();
PendingIntent activity = PendingIntent.getActivity(getContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification.Builder builder = new Notification.Builder(getActivity());
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("这是联系人");
builder.setContentText(lists.get(position).getNumber());
intent.setAction("com.lae.exe");
Bundle bundle = new Bundle();
bundle.putString("del","删除");
intent.putExtras(bundle);
Intent intent1 = getActivity().getIntent();
Bundle extras = intent1.getExtras();
boolean de = extras.getBoolean("de",false);
if(de){
lists.remove(position);
adapter.notifyDataSetChanged();
}
getActivity().sendBroadcast(intent);
builder.setContentIntent(activity);
Notification build = builder.build();
NotificationManager service = (NotificationManager)getActivity().getSystemService(Context.NOTIFICATION_SERVICE);
service.notify(1,build);
}
});
return inflate;
}
}
适配器
日记
package com.example.day1018.fragment;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.day1018.R;
import java.util.ArrayList;
import java.util.List;
class MyAdapter extends BaseAdapter {
private List<String> lists = new ArrayList<>();
private static final String TAG = "MyAdapter";
private Context context;
public MyAdapter(Context context) {
this.context = context;
Uri uri = Uri.parse("content://com.lae.exe");
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
String con = cursor.getString(cursor.getColumnIndex("con"));
lists.add(con);
}
cursor.close();
Log.d(TAG, "getList: "+lists.toString());
}
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.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 = LayoutInflater.from(context).inflate(R.layout.layout_item, null);
holder.textView = convertView.findViewById(R.id.tv_item);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView.setText(lists.get(position));
return convertView;
}
private class ViewHolder {
private TextView textView;
}
}
编写
package com.example.day1018.fragment;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.day1018.R;
import java.util.List;
class MyAdapter3 extends BaseAdapter {
private Context context;
private List<String> lists;
public MyAdapter3(Context context, List<String> lists) {
this.context = context;
this.lists = lists;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.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 = LayoutInflater.from(context).inflate(R.layout.layout_item, null);
holder.textView = convertView.findViewById(R.id.tv_item);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView.setText(lists.get(position));
return convertView;
}
private class ViewHolder {
private TextView textView;
}
}
联系人
package com.example.day1018.fragment;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.day1018.Bean.Person;
import com.example.day1018.MyProvider;
import com.example.day1018.R;
import java.util.ArrayList;
import java.util.List;
class MyAdapter4 extends BaseAdapter {
private List<Person> lists;
private Context context;
public MyAdapter4(List<Person> lists, Context context) {
this.lists = lists;
this.context = context;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.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 = LayoutInflater.from(context).inflate(R.layout.layout_item4, null);
holder.textView_name = convertView.findViewById(R.id.name);
holder.textView_number = convertView.findViewById(R.id.number);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView_number.setText(lists.get(position).getNumber());
holder.textView_name.setText(lists.get(position).getName());
return convertView;
}
private class ViewHolder {
private TextView textView_name, textView_number;
}
}