2013-04-20 2 views
2

Я знаю, что есть много вопросов об этом, но я просто не могу понять, почему моя программа продолжает загружать неправильную работу, хотя я сделал правильный вариант по умолчанию в манифесте. Вот код для всех вас:Действия и манифест в Android

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="swin.examples" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name="swin.examples.TemperatureConvertor" 
        android:label="@string/app_name"> 
     </activity>   
     <activity android:name="swin.examples.FeetToCmConvertor" 
        android:label="@string/app_name"> 
     </activity> 
     <activity android:name="swin.examples.Main" android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

А вот где я думаю, что проблема будет, если это не в манифесте:

package swin.examples; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class Main extends Activity 
{ 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     initializeUI(); 
    } 

private void initializeUI() 
{ 
    Button btnCm = (Button)findViewById(R.id.btnFeet); 
    btnCm.setOnClickListener(btnFeetListener); 
    Button convertButton = (Button)findViewById(R.id.btnTemp); 
    convertButton.setOnClickListener(btnTempListener); 

} 

/** Handle convert button click */ 
private OnClickListener btnTempListener = new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
      convertButtonClicked(); 
    } 
}; 

private OnClickListener btnFeetListener = new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
      btnCmClicked(); 
    } 
}; 

private void btnCmClicked() 
{ 
    // set the sender and the receiver of the intent 
    Intent intent = new Intent(); 
    intent.setClass(getApplicationContext(), swin.examples.FeetToCmConvertor.class); 

    startActivity(intent); // transmit your intent 

} 

private void convertButtonClicked() 
{ 
    // set the sender and the receiver of the intent 
    Intent intent = new Intent(); 
    intent.setClass(getApplicationContext(), swin.examples.TemperatureConvertor.class); 

    startActivity(intent); // transmit your intent 
} 
} 

Я не могу работать его, и я надеюсь, что вы можете помочь меня! Огромное спасибо заранее!

EDIT: Код обновлен, но все еще не работает. Если это помогает, это сообщение журнала:

[2013-04-20 22:44:20 - CombinedConvertor] Success! 
[2013-04-20 22:44:21 - CombinedConvertor] Starting activity swin.examples.TemperatureConvertor on device emulator-5554 
[2013-04-20 22:44:23 - CombinedConvertor] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=swin.examples/.TemperatureConvertor } 
+0

какая активность загружается, а не какая активность? –

+0

термоконвертер вместо основного – dragnflier

+0

@dragnflier: попробуйте очистить проект и снова запустить его. Я комментирую здесь, так что я не в конечном итоге угоняю _Egor's_ ответ. Кроме того, прежде чем вы это сделаете, измените 'android: name =" swin.examples.Main "' на просто 'android: name =". Основной "'. –

ответ

3

Правильное IntentFilter для главного Activity является

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
+0

Я просто пробовал это, и он все еще загружает работу преобразователя температуры. – dragnflier

+1

@dragnflier: Есть ли причина, по которой вы присваиваете '' всем вашим «Деяниям»? Я спрашиваю, потому что ответ «Эгор» правильный и будет работать на вас. Попробуйте прокомментировать другой '<фильтр-замысел>' ** кроме ** для 'swin.examples.Main' Activity. –

+0

@IceMAN: Даже когда я снимаю эти фильтры намерений, он по-прежнему загружает температурный преобразователь. Я понимаю, о чем вы говорите, но это тоже поражает меня! Я не понимаю, почему он все еще не работает. Я пробовал все, что я могу логически думать о – dragnflier

0

Вейрдеста ошибки когда-либо. Работал для всех, только не для меня. Переделайте работу преобразователя температуры, и он работает сейчас. Спасибо всем за вашу помощь!

Смежные вопросы