Начать работу с Button Android
У меня проблема. Я хочу открыть Activity с помощью Button, но он все время сработает.
Поэтому я создал 2 класса и кнопку. Но он продолжает рушиться.
- Класс - класс activity_home(), а второй - класс schedule_act().
класс activity_home:
package my.action.bat;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class activity_home extends Activity {
private Button ScheduleBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ScheduleBtn = (Button) findViewById(R.id.home_btn_schedule);
ScheduleBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent myIntent = new Intent("my.action.bat.schedule_act");
startActivity(myIntent);
}
});
}
}
класс sched_act:
package my.action.bat;
import android.app.Activity;
import android.os.Bundle;
public class schedule_act extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.schedule_layout);
}
}
Android Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.action.bat"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".activity_home" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="@string/app_name"
android:name=".schedule_act" >
<intent-filter >
<action android:name="my.action.bat.SCHEDULE_ACT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Большое спасибо.
Ответы
Ответ 1
Умения чувствительны к регистру. Изменить
"my.action.bat.schedule_act"
Для
"my.action.bat.schedule_act"
Кроме того, если вам действительно не нужно использовать намерение, я бы начал свою деятельность так:
startActivity(new Intent(this, schedule_act.class));
Где this
- подкласс Context
Ответ 2
Попробуйте это
localIntent = new Intent(activity_home.this, schedule_act.class);
activity_home.this.startActivity(localIntent);
Ответ 3
Попробуйте изменить строку
Intent myIntent = new Intent("my.action.bat.schedule_act");
Для
Intent myIntent = new Intent(v.getContext(), schedule_act.class);
И посмотрим, поможет ли это.
Подробнее см. здесь.
Ответ 4
Вы можете изменить эту строку
Intent myIntent = new Intent("my.action.bat.schedule_act");
startActivity(myIntent);
Что-то вроде этого
Intent intent = new Intent ("Your context", "Your activity to launch");
startActivity(intent);
Помните, всегда указывайте контекст и активность.
Ответ 5
Вы должны добавить все классы активности в файл манифеста!!