这是我的第一个应用程序,它是塞尔维亚安卓人员的礼物......我不是在收费。我完成了,但我有一些问题。第一个问题是: 我的第一个屏幕是警报对话框,我向用户解释了运行我的应用程序需要什么。问题是当我再次启动我的应用程序(我猜)从Android系统销毁它不显示警报对话框。它显示一个空屏幕。我再次回到主页按钮,现在它全部都是okey。怎么了???任何的想法? 第二个问题是:我的类都在一个文件夹中:src / test / projekat。当我在手机上启动我的应用程序时,它将安装所有4个文件,这些文件代表清单中的4个活动。这是它应该发生的方式吗?非常感谢... 编辑警报对话代码:
public class PronadjiKlopuActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Kreira AlertDialog sa dva dugmeta koji ce se pojaviti pri aktiviranju aplikacije
AlertDialog ad = new AlertDialog.Builder(this).create();
ad.setTitle("Vasa trenutna lokacija");
ad.setMessage("Da bi ste koristili aplikaciju potrebno je da ukljucite internet konekciju i dozvolite koriscenje GPS satelita i wireless mreze za dobijanje lokacije.");
// ad.setMessage("Da bi ste koristili aplikaciju potrebno je da dozvolite ocitavanje vase trenutne lokacije.");
ad.setButton(DialogInterface.BUTTON_POSITIVE, "Dozvoli", new DialogInterface.OnClickListener() {
//Klikom na dugme Dozvoli otvara se novi prozor
@Override
public void onClick(DialogInterface ad, int which) {
Intent i = new Intent(PronadjiKlopuActivity.this, TrenutnaLokacija.class);
startActivity(i);
}
});
ad.setButton(DialogInterface.BUTTON_NEGATIVE, "Ne dozvoli",new DialogInterface.OnClickListener() {
//Klikom na dugme Ne dozvoli aplikacija se zatvara
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
//Mesto na kojem ce se pojaviti dialog
WindowManager.LayoutParams wMLP = ad.getWindow().getAttributes();
wMLP.x = 100;
wMLP.y = 200;
ad.getWindow().setAttributes(wMLP);
ad.show();
}
//U slucaju pritiska dugmeta Back gasi se aplikacija
@Override
public void onBackPressed() {
// Intent i = new Intent(Intent.ACTION_MAIN);
// i.addCategory(Intent.CATEGORY_HOME);
// startActivity(i);
finish();
super.onBackPressed();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
答案 0 :(得分:2)
When i start my app on phone it installs all 4 files which represent my 4 activitys in manifest. Is this the way it should happen???
您已在清单文件的每个活动代码中添加了此属性:
<category android:name="android.intent.category.LAUNCHER" />
你应该将这个属性添加到你的应用程序启动时的第一个活动中的活动中。
为您的alertDialog显示您的代码..
答案 1 :(得分:1)
您应该只将以下代码添加到AndroidManifest.xml中的起始活动一次
这意味着SplashActivity
将成为第一个被调用的人。在您的情况下,它可能是PronadjiKlopuActivity
<activity android:name=".SplashActivity" android:label="@string/app_nomine"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>