前面那些鸟玩意终于看完了,吐了,看完了啥也没记住。用到再说吧,先找有用的看。
Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式显示到view上,提供 给用户看!
继承结构图
一个读取联系人的代码:
1、定义列表中每一行的布局,在 res/layout
目录下新建一个文件 list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/list_name"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_weight="1"
android:gravity="center"
android:text="简单教程"
android:textColor="#0000FF"
android:textSize="18sp" />
<TextView
android:id="@+id/list_phone"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_weight="1"
android:gravity="center"
android:text="13888888888"
android:textColor="#EA5C4D"
android:textSize="18sp" />
</LinearLayout>
2、修改
activity_main.xml
添加一个 ListView
3、修改 MainActivity.java
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:orientation="vertical" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list_test = (ListView) findViewById(R.id.list_test);
//读取联系人
Cursor cursor = getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
SimpleCursorAdapter spcAdapter = new SimpleCursorAdapter(this,R.layout.list_item,cursor,
new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER},
new int[]{R.id.list_name,R.id.list_phone});
ListView list_view = (ListView) findViewById(R.id.list_view);
list_view.setAdapter(spcAdapter);
}
}
读取联系人导致系统崩溃的原因:没有给权限
最后AndroidManifest.xml里加个读联系人的权限
我加了这一行,依然没用,就去手机设置的权限管理里面手动给开了权限了
版权声明:《 安卓UI控件Adapter 》为admin原创文章,转载请注明出处!
最后编辑:2022-9-15 10:09:23