正如本主题所做的那样:Putting controls inside a notification in Android
我想做同样的事情,但我想动态地创建我的观点。我无法访问任何我无法写入relativelayout / imageview xml的xml。
我是通过Firefox for Android上的JNI这样做的,所以我还在学习很多东西。此时我只能从Java移植到JNI。我想知道你是否可以请我告诉我如何做与原始主题相同的动态。这是原始主题的作用:
public class MainActivity extends Activity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, "Custom Notification", when);
NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
contentView.setImageViewResource(R.id.image, R.drawable.ic_launcher);
contentView.setTextViewText(R.id.title, "Custom notification");
contentView.setTextViewText(R.id.text, "This is a custom layout");
notification.contentView = contentView;
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;
notification.flags |= Notification.FLAG_NO_CLEAR; //Do not clear the notification
notification.defaults |= Notification.DEFAULT_LIGHTS; // LED
notification.defaults |= Notification.DEFAULT_VIBRATE; //Vibration
notification.defaults |= Notification.DEFAULT_SOUND; // Sound
mNotificationManager.notify(1, notification);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
答案 0 :(得分:0)
我想做同样的事情,但我想动态地创建我的观点。我无法访问任何xml,我无法编写relativelayout / imageview xml。
严格来说,你不能做你想做的事。 RemoteViews
仅通过布局资源文件定义其中的小部件和容器。 Java方法允许您操作这些窗口小部件和容器的选择属性,但是如果没有布局资源文件,则无法添加窗口小部件和容器。
欢迎您为不同类型的小部件和容器创建“存根”布局资源文件,然后使用RemoteViews
构造函数为这些小部件和容器创建RemoteViews
,然后使用{{1} } addViews()
将这些拼接成任意结构。这将是麻烦的,但仍然可能无法实现您想要的目标。