我在主活动类中如何声明自定义按钮?它可以在onStart方法上还是只能在onCreate方法中使用?
任何帮助都会受到赞赏吗?
还要进一步说明我在说什么:这是我的活动课。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(D) Log.e(TAG, "+++ ON CREATE +++");
setContentView(R.layout.main);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show();
finish();
return;
}
}
@Override
public void onStart() {
super.onStart();
if(D) Log.e(TAG, "++ ON START ++");
// If BT is not on, request that it be enabled.
if (!mBluetoothAdapter.isEnabled()) {
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
}
else {
startApp();
}
}
private void startApp(){
View Patient_Button = findViewById(R.id.patientButton);
Patient_Button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//case R.id.patientButton:
//Intent b = new Intent(getApplicationContext(), Detailed_ModeActivity.class);
//startActivity(b);
//break;
}
}
);
View Doctor_Button = findViewById(R.id.doctorButton);
Doctor_Button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent a = new Intent(getApplicationContext(), Detailed_ModeActivity.class);
startActivity(a);
//break;
}
}
);
View About_Option = findViewById(R.id.aboutButton);
About_Option.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent c = new Intent(getApplicationContext(), About.class);
startActivity(c);
//break;
}
}
);
*
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="85dip"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center" android:orientation="vertical">
<TextView
android:text="@string/mainTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="25dip"
android:textSize="24.5sp"/>
<!-- Patient Option -->
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/patientButton"
android:id="@+id/patientButton">
</Button>
<!-- Doctor Option -->
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/doctorButton"
android:layout_weight="1"
android:id="@+id/doctorButton">
</Button>
<!-- Exit Mode -->
<Button android:text="@string/exit"
android:layout_weight="1"
android:id="@+id/exit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></Button>
<!-- About Mode -->
<Button android:text="@string/aboutButton"
android:layout_weight="1"
android:id="@+id/aboutButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></Button>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
在Android中,我认为在onCreate()方法中声明一个按钮是常规的。正如@Mike D所说,你也可以在这个onCreate()方法中创建一个控制器并实例化它。虽然你的问题不是很明确,你对此有什么问题,但似乎你只是在寻找这些选择之间的答案 - onStart()和onCreate()。
例如,
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button sampleButton = (Button) findViewById(R.id.sampleButton);
}
在这种情况下,您可以在main.xml
文件中声明按钮,此按钮的ID为sampleButton
。
此外,为了将来参考,请务必查看此页面上的chart以查看Android活动生命周期以及放置位置的内容。这不仅可以回答这个问题,还可以让您自己研究这样一个概念。
答案 1 :(得分:0)
尝试RoboGuice以加快您的开发速度,因此您无需过多担心这些细微的细节。