编写客户端界面,其中包含4个命令按钮,这些按钮能访问ContentProvider中所有的方法,访问后能在logcat中跟踪到各方法说明,其中每个方法的说明还要带有个人学号和姓名信息,信息输出要求采用Log.i()方法。
时间: 2023-12-10 19:42:27 浏览: 93
客户端编程
以下是一个可能的解决方案:
```java
public class MainActivity extends AppCompatActivity {
private ContentResolver contentResolver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentResolver = getContentResolver();
Button btnInsert = findViewById(R.id.btn_insert);
btnInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertData();
}
});
Button btnQuery = findViewById(R.id.btn_query);
btnQuery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
queryData();
}
});
Button btnUpdate = findViewById(R.id.btn_update);
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateData();
}
});
Button btnDelete = findViewById(R.id.btn_delete);
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteData();
}
});
}
private void insertData() {
ContentValues values = new ContentValues();
values.put(MyContentProvider.NAME_COLUMN, "张三");
values.put(MyContentProvider.AGE_COLUMN, 20);
Uri uri = contentResolver.insert(MyContentProvider.CONTENT_URI, values);
Log.i("学号姓名", "317010XXX 李四");
Log.i("MainActivity", "insertData: " + uri.toString());
}
private void queryData() {
String[] projection = {MyContentProvider.ID_COLUMN, MyContentProvider.NAME_COLUMN, MyContentProvider.AGE_COLUMN};
Cursor cursor = contentResolver.query(MyContentProvider.CONTENT_URI, projection, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(MyContentProvider.ID_COLUMN));
String name = cursor.getString(cursor.getColumnIndex(MyContentProvider.NAME_COLUMN));
int age = cursor.getInt(cursor.getColumnIndex(MyContentProvider.AGE_COLUMN));
Log.i("学号姓名", "317010XXX 李四");
Log.i("MainActivity", "queryData: id=" + id + ", name=" + name + ", age=" + age);
}
cursor.close();
}
}
private void updateData() {
ContentValues values = new ContentValues();
values.put(MyContentProvider.AGE_COLUMN, 21);
int rows = contentResolver.update(MyContentProvider.CONTENT_URI, values, null, null);
Log.i("学号姓名", "317010XXX 李四");
Log.i("MainActivity", "updateData: rows=" + rows);
}
private void deleteData() {
int rows = contentResolver.delete(MyContentProvider.CONTENT_URI, null, null);
Log.i("学号姓名", "317010XXX 李四");
Log.i("MainActivity", "deleteData: rows=" + rows);
}
}
```
这里我们定义了一个 `MainActivity` 类来实现客户端的界面,其中包含了4个按钮分别对应 ContentProvider 中的4个方法。当用户点击某个按钮时,对应的方法会被调用,同时在 logcat 中输出相应的信息。
需要注意的是,在每个方法中我们都使用了 `Log.i()` 方法来输出个人学号和姓名信息。这样做是为了确保输出的信息是独一无二的,方便后期跟踪调试。另外,我们还在每个方法中调用了 ContentResolver 的相应方法,并将返回结果输出到 logcat 中。需要注意的是,如果 ContentProvider 中的方法返回的是 Cursor 对象,则需要逐行遍历 Cursor 并提取数据,才能输出到 logcat 中。
以上代码仅供参考,具体实现可能会根据具体需求和环境有所不同。
阅读全文