используя намерение на Android, чтобы показать активность - PullRequest
0 голосов
/ 12 июля 2011

У меня есть два activity класса. У меня есть кнопка на первой, и я хочу показать вторую, когда она нажата, но я получаю принудительное закрытие при каждом запуске приложения. Вот классы:

public class APP extends Activity {

    private TextToSpeech tts;
    private Button b1,b1a,b2,b2a,b3,b3a; 


    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        /** Called when the activity is first created. */
        setContentView(R.layout.main);
        tts = new TextToSpeech (this, null);
        b1 = (Button)findViewById(R.id.btn_time);
        b1.setOnLongClickListener(new Button.OnLongClickListener(){


            @Override
               public boolean onLongClick(View arg0) {
                String hi = "Time";
                tts.speak(hi, 0, null);

                return false;
            }});

            b1a = (Button)findViewById(R.id.btn_time);
            b1a.setOnClickListener(new Button.OnClickListener(){

            public void onClick(View arg0){
            {

                Intent i = new Intent(APP.this, Time.class);
                startActivity(i);
            }
          }
       });

и связать его с:

public class Time extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.time);
        Button btn = (Button) findViewById(R.id.imageButton1);

        btn.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View view) {
                Intent data = new Intent();
                TextView txt_username = 
                    (TextView) findViewById(R.id.imageButton1);

                data.setData(Uri.parse(
                        txt_username.getText().toString()));

                setResult(RESULT_OK, data);
                finish();
            }
        });
    }
}
}

Нет ошибок с кодами, оно принудительно закрывается только при нажатии кнопки. Я даже добавил класс времени к manifest, но проблема все еще сохраняется. Есть ли способ решить эту проблему? заранее спасибо. : D


это мой текущий манифест.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="net.learn2develop.APP"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" 
            android:label="@string/app_name">

    <activity android:name=".APP"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity  android:name=".Time"
                android:label="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.TIME" />
     <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter> 
      </activity>
        </application>
</manifest>

Но проблема все еще сохраняется. оно принудительно закрывается после того, как я нажму кнопку, чтобы связать со временем активность и когда я проверяю logcat, он говорит:

07-13 14:25:56.384: ERROR/AndroidRuntime(3799): android.content.ActivityNotFoundException: Unable to find explicit activity class {net.learn2develop.APP/android.text.format.Time}; 

Вы объявили об этом действии в своем AndroidManifest.xml?

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Я думаю, что вы не упомянули классы в менифесте, который вы хотели вызвать; используйте эти строки разрешений для вызова другого действия

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

    <activity android:enabled="true" android:name="Time" />



</application>

    </manifest>
0 голосов
/ 12 июля 2011

Проблема в вашей временной активности У вас нет onCreateMethod на нем. Вы объявили onCreate во внутреннем классе Activity2 Но вы написали, чтобы начать Time Activity из вашего приложения Activity.

Если вы напишите Intent i = new Intent(APP.this, Time.class);. Он будет искать Time Activity. Но вы не определили Time Activity Correctly. Создайте метод onCreate с соответствующим синтаксисом для класса Timer Activity

Также проверьте файл манифеста, подписали ли вы Time Activity или нет

...