Reputation: 121
I have 2 activity. One is AlertDialogActivity
& second is MainActivity
. I extend AlertDialogActivity
in MainActivity
.
like this public class MainActivity extends AlertDialogActivity
now how to override method which is in AlertDialogActivity
to my MainActivity
?
AlertDialogActivity:
package com.jimmytrivedi.alertdialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class AlertDialogActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alert_dialog);
showAlertDialog(AlertDialogActivity.this);
}
private void showAlertDialog(final Context context) {
// 1. Instantiate an <code><a href="/reference/android/app/AlertDialog.Builder.html">AlertDialog.Builder</a></code> with its constructor
AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);
// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage("How are you?")
.setTitle("Hello");
// 3. Get the <code><a href="/reference/android/app/AlertDialog.html">AlertDialog</a></code> from <code><a href="/reference/android/app/AlertDialog.Builder.html#create()">create()</a></code>
AlertDialog dialog = builder.create();
dialog.show();
}
}
Upvotes: 0
Views: 686
Reputation: 916
if you want to override a method Use abstract keyword
public abstract class AlertDialogActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alert_dialog);
showAlertDialog(AlertDialogActivity.this);
}
public abstract void showAlertDialog(final Context context) {
// 1. Instantiate an <code><a href="/reference/android/app/AlertDialog.Builder.html">AlertDialog.Builder</a></code> with its constructor
AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);
// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage("How are you?")
.setTitle("Hello");
// 3. Get the <code><a
href="/reference/android/app/AlertDialog.html">AlertDialog</a></code> from <code><a
href="/reference/android/app/AlertDialog.Builder.html#create()">create()</a></code>
AlertDialog dialog = builder.create();
dialog.show();
}
Upvotes: 1
Reputation: 445
Method should be with the same name and type. Method should also not be private.
It can be protected, package-private or public. More about that you can find here: What is the difference between public, protected, package-private and private in Java?
Upvotes: 0
Reputation: 8841
Make the showAlertDialog
protected
instead of private
, or even public if you want other classes to be able to call it.
protected void showAlertDialog(final Context context) {
}
Private methods can not be overriden.
Upvotes: 1