I want to build a java class file that create alertDialog and return a boolean value for sendSMS. But i dont know how to return a value from alertDialog java class. So my function return void result.
This is my first class that execute alertDialog java class
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class SMSActivity extends AppCompatActivity {
ListView mainListView;
String mainCommandStrings[] = {"Turn ON", "Turn OFF", "Parameters"};
private static final String LOG_TAG = SMSActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
// Array Adapter
mainListView = findViewById(R.id.main_list_view);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,
R.layout.sms_main_list_view,
R.id.command_text_view,
mainCommandStrings );
mainListView.setAdapter(arrayAdapter);
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView parent, View view, int position, long id){
switch (position){
case 0: // turn on
Toast.makeText(getApplicationContext(),"Turn on",Toast.LENGTH_SHORT).show();
ConfirmSMS confirmSMS =
new ConfirmSMS(getApplicationContext(), position);
sendTextMessage(confirmSMS, position);
break;
case 1: // Turn off
Toast.makeText(getApplicationContext(),"Turn off",Toast.LENGTH_SHORT).show();
ConfirmSMS confirmSMS1=
new ConfirmSMS(getApplicationContext(), position);
sendTextMessage(confirmSMS1, position);
break;
case 2: //Setting Parameters
Toast.makeText(getApplicationContext(),"Parameters",Toast.LENGTH_SHORT).show();
intentParameter();
break;
default:
break;
}
}
});
}
private void sendTextMessage(ConfirmSMS confirmSMS, int itemPosition) {
int position = itemPosition;
String stat;
if(position==0){
stat = "SMS Sent";
} else{
stat = "Cancel";
}
Toast.makeText(getApplicationContext(),stat,Toast.LENGTH_SHORT).show();
}
private void intentParameter() {
Log.d(LOG_TAG, "SMS Method");
Intent parameterIntent = new Intent(this, ParameterActivity.class);
startActivity(parameterIntent);
}
and this is my alertDialog java class (ConfirmSMS)
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.Toast;
class ConfirmSMS {
ConfirmSMS(final Context applicationContext, int itemPosition){
String stat = null;
if(itemPosition==0){
stat = "Turn ON";
} else if(itemPosition==1) {
stat = "Turn OFF";
}
final String condition = stat;
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(applicationContext);
//Setting alert dialog
alertDialogBuilder.setTitle("Confirmation"); // set judul
alertDialogBuilder.setMessage("Are you sure to "+ condition+ " the AC?");
alertDialogBuilder.setCancelable(true);
alertDialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(applicationContext,
"Send instruction to "+condition+" the AC",
Toast.LENGTH_SHORT).show();
}
});
alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(applicationContext,
"Cancel",
Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
Refactor your code so that you don't need another class for creating an AlertDialog. Reorganize your code to keep it all in the Activity so that you can access the method sendTextMessage from the actions on the AlertBuilder. Something like this:
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class SMSActivity extends AppCompatActivity {
ListView mainListView;
String mainCommandStrings[] = {"Turn ON", "Turn OFF", "Parameters"};
private static final String LOG_TAG = SMSActivity.class.getSimpleName();
private boolean myBoolean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
// Array Adapter
mainListView = findViewById(R.id.main_list_view);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,
R.layout.sms_main_list_view,
R.id.command_text_view,
mainCommandStrings);
mainListView.setAdapter(arrayAdapter);
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, final int position, long id) {
String stat = null;
switch (position) {
case 0: // turn on
Toast.makeText(getApplicationContext(), "Turn on", Toast.LENGTH_SHORT).show();
stat = "Turn ON";
break;
case 1: // Turn off
Toast.makeText(getApplicationContext(), "Turn off", Toast.LENGTH_SHORT).show();
stat = "Turn ON";
break;
case 2: //Setting Parameters
Toast.makeText(getApplicationContext(), "Parameters", Toast.LENGTH_SHORT).show();
intentParameter();
break;
default:
break;
}
final String condition = stat;
if(condition != null){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getApplicationContext());
//Setting alert dialog
alertDialogBuilder.setTitle("Confirmation"); // set judul
alertDialogBuilder.setMessage("Are you sure to "+ condition+ " the AC?");
final AlertDialog.Builder builder = alertDialogBuilder.setCancelable(true);
alertDialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(),
"Send instruction to "+condition+" the AC",
Toast.LENGTH_SHORT).show();
//Here is where you execute sendTextMessage
//passing the param from the AlertDialog
sendTextMessage(position);
}
});
alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(),
"Cancel",
Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
});
}
private void sendTextMessage(int itemPosition) {
int position = itemPosition;
String stat;
if (position == 0) {
stat = "SMS Sent";
} else {
stat = "Cancel";
}
Toast.makeText(getApplicationContext(), stat, Toast.LENGTH_SHORT).show();
}
private void intentParameter() {
Log.d(LOG_TAG, "SMS Method");
Intent parameterIntent = new Intent(this, ParameterActivity.class);
startActivity(parameterIntent);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.