android:layout_height=“match_parent”>
<SearchView
android:id=“@+id/search_view”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:iconifiedByDefault=“false”
android:queryHint=“输入搜索内容…”
android:layout_alignParentTop=“true”>
<ListView
android:id=“@android:id/list”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”>
查询按钮的监听器、查询列表的监听器以及查询界面的初始化(NoteSearch)
public class NoteSearch extends ListActivity implements
SearchView.OnQueryTextListener {
private static final String[] PROJECTION = new String[] {
NotePad.Notes._ID, // 0
NotePad.Notes.COLUMN_NAME_TITLE, // 1
//扩展 显示时间 颜色
NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE // 2
//NotePad.Notes.COLUMN_NAME_BACK_COLOR
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_search_list);
Intent intent = getIntent();
if (intent.getData()
== null) {
intent.setData(NotePad.Notes.CONTENT_URI);
}
SearchView searchview =
(SearchView)findViewById(R.id.search_view);
//为查询文本框注册监听器
searchview.setOnQueryTextListener(NoteSearch.this);
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
String selection = NotePad.Notes.COLUMN_NAME_TITLE + " Like ? ";
String[] selectionArgs = { “%”+newText+“%” };
Cursor cursor = managedQuery(
getIntent().getData(), PROJECTION,
selection, selectionArgs, NotePad.Notes.DEFAULT_SORT_ORDER
);
String[] dataColumns = {
NotePad.Notes.COLUMN_NAME_TITLE
, NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE };
int[]
viewIDs = { android.R.id.text1
, R.id.text1_time };
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this,
R.layout.noteslist_item,
cursor,
dataColumns,
viewIDs
);
setListAdapter(adapter);
return true;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long
id) {
Uri uri = ContentUris.withAppendedId(getIntent().getData(),
id);
String action = getIntent().getAction();
if (Intent.ACTION_PICK.equals(action)
|| Intent.ACTION_GET_CONTENT.equals(action)) {
setResult(RESULT_OK, new Intent().setData(uri));
} else {
startActivity(new Intent(Intent.ACTION_EDIT, uri));
}
}
}
在文本下方显示时间
文本标题(noteslist_item.xml)
<TextView xmlns:android=“http://schemas.android.com/apk/res/android”
android:id=“@android:id/text1”
android:layout_width=“match_parent”
android:layout_height=“?android:attr/listPreferredItemHeight”
android:textAppearance=“?android:attr/textAppearanceLarge”
android:gravity=“center_vertical”
android:paddingLeft=“5dip”
android:singleLine=“true”
/>
我们要在标题下方添加时间,那么可以再写一个时间的TextView,把标题和时间的TextView放入垂直线性布局内就好了
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:id=“@+id/layout”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”>
<TextView xmlns:android=“http://schemas.android.com/apk/res/android”
android:id=“@android:id/text1”
android:layout_width=“match_parent”
android:layout_height=“?android:attr/listPreferredItemHeight”
android:textAppearance=“?android:attr/textAppearanceLarge”
android:gravity=“center_vertical”
android:paddingLeft=“5dip”
android:singleLine=“true”
/>
<TextView
android:id=“@+id/text1_time”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:textAppearance=“?android:attr/textAppearanceSmall”
android:text=“@string/text_title”
android:paddingLeft=“5dip”
/>
在数据库中存放时间(NotePadProvider)
public void onCreate(SQLiteDatabase db) {
db.execSQL(“CREATE TABLE " + NotePad.Notes.TABLE_NAME + " (”
-
NotePad.Notes._ID + " INTEGER PRIMARY KEY,"
-
NotePad.Notes.COLUMN_NAME_TITLE + " TEXT,"
-
NoteP
ad.Notes.COLUMN_NAME_NOTE + " TEXT," -
NotePad.Notes.COLUMN_NAME_CREATE_DATE + " INTEGER,"
-
NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE + " INTEGER"
-
“);”);
}
通过Cursor从数据库中读取出
Cursor cursor = managedQuery(
getIntent().getData(), // Use the default content URI for the provider.
PROJECTION, // Return the note ID and title for each note.
null, // No where clause, return all records.
null, // No where clause, therefore no where column values.
NotePad.Notes.DEFAULT_SORT_ORDER // Use the default sort order.
);
通过SimpleCursorAdapter装填
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取
clause, therefore no where column values.
NotePad.Notes.DEFAULT_SORT_ORDER // Use the default sort order.
);
通过SimpleCursorAdapter装填
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-Uqmw3Jyr-1718993559695)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取