gpt4 book ai didi

java - 我正在制作一个调用电话的应用程序,如何保存多个号码,然后让用户选择其中一个?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:33 25 4
gpt4 key购买 nike

我制作了一个应用程序,用于保存具有共享首选项的号码,以及一个用于使用该号码执行调用的按钮。

我想保存多个输入(数字)和名称,我知道我需要使用 ArrayList 来做到这一点。

如何保存输入、名称和数字,然后向用户显示一些带有名称的微调器,以便当他选择名称时,应用程序将检索该数字并计算该数字?

谢谢!

public class MainActivity extends AppCompatActivity {

Button openButton = null;
ImageButton editButton = null;
int PERMISSION_ALL = 1;
String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.CALL_PHONE};
AlertDialog dialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if(!hasPermissions(this, PERMISSIONS)){
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}


openButton = (Button) findViewById(R.id.button);
editButton = (ImageButton) findViewById(R.id.imageButton);

editButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
View mView = getLayoutInflater().inflate(R.layout.activity_save, null);
final EditText number = (EditText) mView.findViewById(R.id.editText);
Button saveButton = (Button) mView.findViewById(R.id.button2);

saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

// Integer num = Integer.valueOf(number.getText().toString());
String num = number.getText().toString();
SharedPreferences.Editor editor = getSharedPreferences("userInfo",MODE_PRIVATE).edit();
editor.putString("Phone", String.valueOf(num));
editor.commit();

Toast.makeText(MainActivity.this, "Saved!", Toast.LENGTH_LONG).show();
dialog.dismiss();

}
});

mBuilder.setView(mView);
dialog = mBuilder.create();
dialog.show();
}
});

openButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
makeCall();
}
});


}
public static boolean hasPermissions(Context context, String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}

public void makeCall(){
SharedPreferences prefs = getSharedPreferences("userInfo", MODE_PRIVATE);
String restoredText = prefs.getString("Phone", null);
if (restoredText != null) {
String name = prefs.getString("Phone", "");

Intent call = new Intent(Intent.ACTION_CALL);
call.setData(Uri.parse("tel:" + name));
startActivity(call);

}
this.finishAffinity();
System.exit(0);

}
}

最佳答案

要保存多个联系人,您可以使用 Gson 库或 sqlite DB。我认为 Gson 也会这样做。

首先,您必须创建一个联系人类,包括字段名称、号码等,无论您想要什么。制作对象的ArrayList并将其保存到Gson中并使其成为字符串,这样就可以将字符串存储到SharedPreferences中;并使用相同的 Gson,您可以检索类对象。

引用此链接:
store and retrieve a class object in shared preference

关于java - 我正在制作一个调用电话的应用程序,如何保存多个号码,然后让用户选择其中一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44076238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com