Where do i declare a custom button in my main activity class? Can it be on the onStart Method or will it only work in the onCreate Method?
Any Help would be appreciated?
Also to further illustrate what i am talking about: Here is my activity class.
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>
In Android, I believe it is conventional to declare a button in the onCreate() method. As @Mike D said, you can also create a controller and instantiate that in this onCreate() method. Although your question is not too clear on what problem you are having with this, it seems that you are simply looking for an answer between those choices- onStart() and onCreate().
For Example,
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button sampleButton = (Button) findViewById(R.id.sampleButton);
}
In this scenario, you would have the button declared in your main.xml
file and the id of this button would be sampleButton
.
Furthermore, for future reference, it is very important that you look at the chart on this page to see the Android Activity life cycle and what to place where. This will not only answer this question, but give you room to study such a concept on your own.