【发布时间】:2018-11-29 02:34:12
【问题描述】:
我想构建一个 java 类文件来创建 alertDialog 并为 sendSMS 返回一个布尔值。但我不知道如何从 alertDialog java 类返回一个值。所以我的函数返回 void 结果。
这是我第一个执行 alertDialog java 类的类
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);
}
这是我的 alertDialog java 类 (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();
}
}
【问题讨论】:
标签: java android return android-alertdialog