脑壳疼的周五

读取联系人的界面

package com.example.ap.MainFragment;


import android.Manifest;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.example.ap.R;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class LinkFragment extends Fragment {


    public LinkFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},202);
    }

    private ListView viewById;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_link, container, false);
        viewById = inflate.findViewById(R.id.link_list);
        return viewById;
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if( requestCode==202&&grantResults[0]== PackageManager.PERMISSION_GRANTED){
            readLink();
        }
    }

    private void readLink() {
        Uri contentUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
        ContentResolver cr = getContext().getContentResolver();
        String[] str = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER};
        Cursor query = cr.query(contentUri, str, null, null, null);
        ArrayList<String> strings = new ArrayList<>();
        if( query!=null){
            while (query.moveToNext()) {
                String name = query.getString(query.getColumnIndex(str[0]));
                String number = query.getString(query.getColumnIndex(str[1]));
                strings.add("name:"+name+"\tnumber:"+number);
            }
            ArrayAdapter aaa = new ArrayAdapter<>(getContext(),R.layout.support_simple_spinner_dropdown_item,strings);
            viewById.setAdapter(aaa);
        }
    }
}

适配器

package com.example.ap.Adapter;

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.ap.MySqlite.MyNote;
import com.example.ap.R;

import java.util.List;

public class ListAdapter extends BaseAdapter {
    private List<MyNote> strings;
    private Context con;

    public ListAdapter(List<MyNote> strings, Context con) {
        this.strings = strings;
        this.con = con;
    }

    public void setStrings(List<MyNote> strings) {
        this.strings = strings;
    }

    public void setCon(Context con) {
        this.con = con;
    }

    @Override
    public int getCount() {
        return strings.size();
    }

    @Override
    public Object getItem(int position) {
        return strings.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    private MyId mi;
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if( convertView==null){
            mi=new MyId();
            convertView= LayoutInflater.from(con).inflate(R.layout.list_layout,null);
            mi.text=convertView.findViewById(R.id.list_layout_text);
            convertView.setTag(mi);
        }else{
            mi= (MyId) convertView.getTag();
        }
        mi.text.setText(strings.get(position).toString());
        return convertView;
    }

    class MyId{
        private TextView text;
    }
}

引导页

package com.example.ap.GuidePage;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import com.example.ap.R;

public class GuidePageActivity extends AppCompatActivity {
    private TextView tv;
    private TextView time;
    private Handler han=new Handler( ){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            time.setText(msg.obj.toString());
            if( msg.arg1==0){
                finish();
            }
        }
    };

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

        tv=findViewById(R.id.guide_text);
        time=findViewById(R.id.guide_time);

        //开始倒计时。
        new MyThread(han).start();
    }
}

引导页的倒计时

package com.example.ap.GuidePage;

import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

public class MyThread extends Thread{
    private Handler han;

    public MyThread(Handler han) {
        this.han = han;
    }

    @Override
    public void run() {
        super.run();
        for (int i = 3; i >=0; i--) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Message mess = Message.obtain();
            mess.arg1=i;
            mess.obj="倒计时:"+i+"s.";
            han.sendMessage(mess);
        }
    }
}

编辑碎片

package com.example.ap.MainFragment;


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.Toast;

import com.example.ap.Data.MyData;
import com.example.ap.MainActivity;
import com.example.ap.MySqlite.MyHelper;
import com.example.ap.MySqlite.MyNote;
import com.example.ap.MySqlite.MyUtils;
import com.example.ap.R;

import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class EditFragment extends Fragment {
    private MainActivity ma;

    public void setMa(MainActivity ma) {
        this.ma = ma;
    }

    public EditFragment() {
        // Required empty public constructor
    }

    private Button editFragmentButton;
    private EditText editFragmentEditText;
    private EditText editFragmentEditTextMessage;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_edit, container, false);

        editFragmentButton = (Button) inflate.findViewById(R.id.edit_fragment_button);
        editFragmentEditText = (EditText) inflate.findViewById(R.id.edit_fragment_editText);
        editFragmentEditTextMessage = (EditText) inflate.findViewById(R.id.edit_fragment_editText_message);

        editFragmentButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String title = editFragmentEditText.getText().toString().trim();
                String message = editFragmentEditTextMessage.getText().toString().trim();
                MyUtils mu = new MyUtils(getContext());
                MyNote mn = new MyNote();
                mn.setTitle(title);
                mn.setMessage(message);
                mu.insert(mn);
                Toast.makeText(getContext(), "插入完成。", Toast.LENGTH_SHORT).show();
            }
        });
        return inflate;
    }

}

查询碎片

package com.example.ap.MainFragment;


import android.database.Cursor;
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.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.example.ap.Data.MyData;
import com.example.ap.MainActivity;
import com.example.ap.MySqlite.MyNote;
import com.example.ap.MySqlite.MyUtils;
import com.example.ap.R;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class FindFragment extends Fragment {
    private MainActivity ma;

    public void setMa(MainActivity ma) {
        this.ma = ma;
    }

    public FindFragment() {
        // Required empty public constructor
    }

    private EditText findFragmentEdit;
    private Button findFragmentButton;
    private ListView findFragmentList;
    private List<MyNote> list;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_find, container, false);

        findFragmentEdit = (EditText) inflate.findViewById(R.id.find_fragment_edit);
        findFragmentButton = (Button) inflate.findViewById(R.id.find_fragment_button);
        findFragmentList = (ListView) inflate.findViewById(R.id.find_fragment_list);

        list=new ArrayList<>();
        findFragmentButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = findFragmentEdit.getText().toString().trim();
                MyUtils mu = new MyUtils(getContext());
                Cursor query = mu.query(text);
                if( query==null){
                    Toast.makeText(getContext(), "没找到。", Toast.LENGTH_SHORT).show();
                }else{
                    while (query.moveToNext()) {
                        String title = query.getString(query.getColumnIndex("title"));
                        String message = query.getString(query.getColumnIndex("message"));
                        MyNote mn = new MyNote();
                        mn.setTitle(title);
                        mn.setMessage(message);
                        list.add(mn);
                        Toast.makeText(ma, ""+mn.toString(), Toast.LENGTH_SHORT).show();
                    }
                    com.example.ap.Adapter.ListAdapter aaa = new com.example.ap.Adapter.ListAdapter(list,getContext());
                    findFragmentList.setAdapter(aaa);
                }
            }
        });
        return inflate;
    }

}

查询数据库碎片

package com.example.ap.MainFragment;


import android.app.Activity;
import android.content.Context;
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.ListView;

import com.example.ap.Adapter.ListAdapter;
import com.example.ap.MainActivity;
import com.example.ap.MySqlite.MyHelper;
import com.example.ap.MySqlite.MyNote;
import com.example.ap.MySqlite.MyUtils;
import com.example.ap.R;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class ListFragment extends Fragment {
    private MainActivity ma;

    public void setMa(MainActivity ma) {
        this.ma = ma;
    }

    public ListFragment() {
        // Required empty public constructor
    }

    private ListView lsit;
    private List<MyNote> strings;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_list, container, false);
        ListView list=inflate.findViewById(R.id.list_listView);
        ListAdapter aaa = new ListAdapter(strings,getContext());
        strings = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            String title=i+""+i+i;
            String message=i+""+i+i+i+i+i+i+i+i+i+i+i+i;
            MyNote myNote = new MyNote();
            myNote.setMessage(message);
            myNote.setTitle(title);
            strings.add(myNote);
        }
        aaa.setStrings(strings);
        aaa.setCon(getContext());
        ma.getMd().setList(strings);
        //写入数据库
        MyUtils mu = new MyUtils(getContext());
        for (int i = 0; i < strings.size(); i++) {
            mu.insert(strings.get(i));
        }
        list.setAdapter(aaa);
        return inflate;
    }

}

自定义Helper类

package com.example.ap.MySqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MyHelper extends SQLiteOpenHelper {
    public MyHelper(Context context,String name,SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table notes(title varchar(20),message varchar(100))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

自定义类

package com.example.ap.MySqlite;

public class MyNote {
    private String title;
    private String Message;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getMessage() {
        return Message;
    }

    public void setMessage(String message) {
        Message = message;
    }

    @Override
    public String toString() {
        return "MyNote{" +
                "title='" + title + '\'' +
                ", Message='" + Message + '\'' +
                '}';
    }
}

自定义工具类

package com.example.ap.MySqlite;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class MyUtils {
    private Context con;
    private SQLiteDatabase db;

    public MyUtils(Context con) {
        this.con = con;
        MyHelper myHelper = new MyHelper(con,"notes.db",null, 1);
        db=myHelper.getReadableDatabase();
    }

    public MyUtils() {
    }

    public void insert(MyNote mn){
        db.execSQL("insert into notes values(?,?)",new Object[]{mn.getTitle(),mn.getMessage()});
    }

    public void delete( String str){
        db.execSQL("delete from notes where title=?",new Object[]{str});
    }

    public void update( String[] str){
        db.execSQL("update notes set message=? where title=?",new Object[]{str[0],str[1]});
    }

    public Cursor query(String str){
        Cursor cursor = db.rawQuery("select * from notes where message like ?", new String[]{"%" + str + "%"});
        return cursor;
    }
}

主界面

package com.example.ap;

import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import com.example.ap.Data.MyData;
import com.example.ap.GuidePage.GuidePageActivity;
import com.example.ap.MainFragment.EditFragment;
import com.example.ap.MainFragment.FindFragment;
import com.example.ap.MainFragment.LinkFragment;
import com.example.ap.MainFragment.ListFragment;

public class MainActivity extends AppCompatActivity {
    private RelativeLayout mainRelaLayout;
    private LinearLayout mainLinearLayout;
    private Button mainButtonList;
    private Button mainButtonFind;
    private Button mainButtonEdit;
    private Button mainButtonLink;
    //第一个日积累fragment
    private ListFragment listFragment=new ListFragment();
    private FindFragment findFragment=new FindFragment();

    private FragmentManager gsf;
    private EditFragment editFragment=new EditFragment();
    private LinkFragment linkFragment=new LinkFragment();

    private MyData md;

    public MyData getMd() {
        return md;
    }

    public void setMd(MyData md) {
        this.md = md;
    }

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

//        Intent it = new Intent(this, GuidePageActivity.class);
//        startActivity(it);

        md=new MyData();
        findFragment.setMa(this);

        mainRelaLayout = (RelativeLayout) findViewById(R.id.main_relaLayout);
        mainLinearLayout = (LinearLayout) findViewById(R.id.main_linearLayout);
        mainButtonList = (Button) findViewById(R.id.main_button_list);
        mainButtonFind = (Button) findViewById(R.id.main_button_find);
        mainButtonEdit = (Button) findViewById(R.id.main_button_edit);
        mainButtonLink = (Button) findViewById(R.id.main_button_link);

        gsf = getSupportFragmentManager();
        FragmentTransaction ft = gsf.beginTransaction();
        listFragment = new ListFragment();
        listFragment.setMa(this);
        ft.add(R.id.main_relaLayout,listFragment);
        ft.commit();
    }

    public void click(View view) {

        switch (view.getId()) {
            case R.id.main_button_list:
//                if( fts==null) {
//                    fts = lf;
//                }else{
//                    ft.hide(fts);
//                    ft.commit();
//                }
                FragmentTransaction fts = gsf.beginTransaction();
                listFragment.setMa(this);
                fts.replace(R.id.main_relaLayout,listFragment).commit();
                break;
            case R.id.main_button_find:
                FragmentTransaction fts2 = gsf.beginTransaction();
                fts2.replace(R.id.main_relaLayout,findFragment).commit();
                break;
            case R.id.main_button_edit:
                FragmentTransaction fts3 = gsf.beginTransaction();
                fts3.replace(R.id.main_relaLayout,editFragment).commit();
                break;
            case R.id.main_button_link:
                FragmentTransaction fts4 = gsf.beginTransaction();
                fts4.replace(R.id.main_relaLayout,linkFragment).commit();
                break;
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值