我正在编写一个Android应用程序,我想在主屏幕上放置一个对话框或视图,以便用户可以输入文本而无需跳转到我的完整应用程序。我似乎无法让这个工作。如果我提出一个对话框(即使在透明活动中),我的应用程序也会启动。
如果您不知道我在说什么,请查看Facebook小部件。我想复制一个类似的行为来点击“你在想什么?”框。
提前感谢您的帮助!
-Brian
答案 0 :(得分:10)
我的问题是应用程序总是启动以显示对话框。
为了解决这个问题,我在清单中将活动模式设置为singleInstance
。现在它显示主屏幕上的对话框!
答案 1 :(得分:7)
他们正在启动一项活动,但是他们设置了活动的主题,因此它看起来像一个对话框。
在您的清单中,您必须在<activity>
标记下添加类似内容:android:theme="@android:style/Theme.Dialog"
答案 2 :(得分:3)
非常感谢,我尝试使用Theme.Dialog
<activity android:name=".language"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
但是在我的代码中,有两个不同的浮动窗口:我的布局和磁贴。以下是代码:
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.app.Dialog;
public class language extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.main);
dialog.setTitle("Raygional");
dialog.show();
}
}
PS:我知道这应该是一个问题而不是一个答案
答案 3 :(得分:0)
使用服务
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.getApplicationContext().startActivity(intent);
下面是一些代码`
public class HomepopupDataService extends Service {
private static final String TAG = "HomepopupDataService";
@Override
public void onCreate() {
Log.i(TAG, "Service onCreate");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Log.i(TAG, "Service onStartCommand");
CountDownTimer dlgCountDown;
Log.e("---------------", "onHandleIntent");
dlgCountDown = new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
Log.e("---------------", "onHandleIntent++");
}
public void onFinish() {
Intent i = new Intent(getApplicationContext(),
DialogActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
}
}.start();
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
Log.i(TAG, "Service onBind");
return null;
}
@Override
public void onDestroy() {
Log.i(TAG, "Service onDestroy");
}
}