Активность не отображает файл xml

Вот ss_birth.xml:

<!--?xml version="1.0" encoding="utf-8"?-->

<button android:id="@+id/SSB_Btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginleft="25dp" android:layout_marginright="25dp" android:layout_margintop="35dp" android:text="@string/SSB_Btn" android:textsize="23sp"> <p> И <code>SSBirthActivity.java</code>:</p> <pre class="prettyprint linenums">package ru.abcdefg.abcd;

import android.app.Activity;
import android.os.Bundle;

public class SSBirthActivity extends Activity{

 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.ss_birth);
 }
}

И вот деятельность. Из него я хочу начать SSBirthActivity:

public class MenuActivity extends Activity {

String TAG = "Days";

int firstTimeCheck = 0; // 0 = 1st time; 1 = not 1st time

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 Log.w(TAG, "--- MenuActivity ---");

 Log.i(TAG, "Starting first time check");
 firstTimeCheck = 0; // TEST OPTION [Make first time]
 if (firstTimeCheck == 0) {
 Log.w(TAG, "First time. Starting SSBirthActivity");
 Intent intent = new Intent(this, SSBirthActivity.class);
 firstTimeCheck = 1;

 startActivity(intent);
 }
}
}

Android-манифест:

<!--?xml version="1.0" encoding="utf-8"?-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.abcdefg.abcd" android:versioncode="1" android:versionname="1.0">
 <uses-sdk android:minsdkversion="11" android:targetsdkversion="18">
 <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@android:style/Theme.Holo.Light" android:debuggable="true">
 <activity android:name="MenuActivity" android:label="@string/app_name" android:launchmode="standard" android:enabled="true">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">
 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </activity>
 <activity android:name=".SSBirthActivity" android:label="Введите д/р">
 </activity></application>
</uses-sdk></manifest>

Но когда начинается эта деятельность, есть только белый экран.

Кстати, когда начинается эта деятельность, смена названия. Так начинается деятельность, но ничего не показывает. Есть идеи?

Заранее спасибо, SergaRUS

3 ответа

В вашем AndroidManifest.xml вы делаете MenuActivity Activity MAIN и LAUNCHER. Это интерпретируется системой как точка входа в ваше приложение. Если вы хотите, чтобы SSBirthActivity была вашей точкой входа, измените на ней следующим образом:

<!--?xml version="1.0" encoding="utf-8"?-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.abcdefg.abcd" android:versioncode="1" android:versionname="1.0">
 <uses-sdk android:minsdkversion="11" android:targetsdkversion="18">
 <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@android:style/Theme.Holo.Light" android:debuggable="true">
 <activity android:name="MenuActivity" android:label="@string/app_name" android:launchmode="standard" android:enabled="true"> 
 </activity>
 <activity android:name=".SSBirthActivity" android:label="Введите д/р">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">
 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </activity>
 </application>
</uses-sdk></manifest>

Если вы все еще хотите, чтобы MenuActivty был точкой входа, вы можете отправить Intent из него в SSBirthActivity чтобы запустить его:

Intent intent = new Intent(this, SSBirthActivity.class);
startActivity(intent);


Я только что проверил ваш макет. Оно работает. Возможно, я ошибся в форматировании. Попробуйте автоматическое форматирование. Вы знаете, как это работает?

У вас есть конечный тег для вашего LinearLayout?

<button android:id="@+id/SSB_Btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginleft="25dp" android:layout_marginright="25dp" android:layout_margintop="35dp" android:text="def" android:textsize="23sp"> </button>

Если это не поможет, напишите свой манифест.

С наилучшими пожеланиями Винс

РЕДАКТИРОВАТЬ:

Попытайтесь использовать это в своем манифесте вместо этого. Сначала это начнет вашу вторую активность. В вашем макете нет ничего плохого. Ваш вопрос относится к другой проблеме.

<application android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Holo.Light">
 <activity android:name="MenuActivity" android:enabled="true" android:label="@string/app_name" android:launchmode="standard">
 </activity>
 <activity android:name="ru.abcdefg.abcd.SSBirthActivity" android:label="Введите д/р">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">

 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </activity>
 </application>


Вы можете запускать Activity изнутри другого с помощью намерения:

Intent intent = new Intent(this, SSBirthActivity.class);
startActivity(intent);

Просто поместите этот код в основную деятельность, и он будет работать. О, я не видел другого сообщения, потому что он был опубликован, пока я создал мою.

licensed under cc by-sa 3.0 with attribution.