基于安卓,点击状态栏图标显示笔记标签列表的代码
时间: 2024-01-01 13:05:53 浏览: 72
以下是一个简单的实现方式:
1. 在AndroidManifest.xml文件中添加一个新的Activity:
```xml
<activity
android:name=".NoteListActivity"
android:label="@string/note_list_title"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
```
2. 在创建的NoteListActivity中,设置为透明主题,然后在onCreate方法中加载笔记列表。同时,设置点击状态栏图标时打开这个Activity:
```java
public class NoteListActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_list);
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
listView = findViewById(R.id.note_list);
// 加载笔记列表
List<String> noteList = loadNoteList();
listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, noteList));
}
private List<String> loadNoteList() {
// 加载笔记列表的逻辑
}
public static PendingIntent createPendingIntent(Context context) {
Intent intent = new Intent(context, NoteListActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
}
```
3. 在你的Service或BroadcastReceiver中,使用NotificationCompat.Builder构建通知,设置PendingIntent为打开NoteListActivity的:
```java
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle("笔记")
.setContentText("点击查看笔记列表")
.setContentIntent(NoteListActivity.createPendingIntent(context))
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManagerCompat.from(context).notify(notificationId, builder.build());
```
这样,当用户点击状态栏中的通知图标时,会打开NoteListActivity并显示笔记列表。注意,这里的NoteListActivity只是一个示例,需要替换为你自己的Activity。
阅读全文