Java 使用共享首选项保存和获取微调器项
我在将微调器项保存到共享首选项时遇到问题。我的意思是我真的不知道怎么做。如果有人知道的话,有人能向我解释一下就好了。提前谢谢:) 因此,我将按钮1设置为打开一个带有微调器的对话框,在微调器中,我有3项(在strings.xml中声明)。我应该使用共享首选项将微调器默认设置为项目1:“-”,如果用户选择项目2“lang1”或“lang2”,它应该保存在应用程序中。所以当我下次打开应用程序时,它的“lang1”或“lang2”取决于选择 其他一切都很好Java 使用共享首选项保存和获取微调器项,java,android,sharedpreferences,android-spinner,Java,Android,Sharedpreferences,Android Spinner,我在将微调器项保存到共享首选项时遇到问题。我的意思是我真的不知道怎么做。如果有人知道的话,有人能向我解释一下就好了。提前谢谢:) 因此,我将按钮1设置为打开一个带有微调器的对话框,在微调器中,我有3项(在strings.xml中声明)。我应该使用共享首选项将微调器默认设置为项目1:“-”,如果用户选择项目2“lang1”或“lang2”,它应该保存在应用程序中。所以当我下次打开应用程序时,它的“lang1”或“lang2”取决于选择 其他一切都很好 public class MainActivi
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
SharedPreferences sharedpreferences;
public static final String mypreference = "mypref";
int spinnerPosition;
public Button btnTrans, btnSelect,btnInput,btnCheck;
public TextView tv_title, tv_message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSelect= (Button) findViewById(R.id.btnLanguage);
btnInput = (Button) findViewById(R.id.btnInput);
btnTrans = (Button) findViewById(R.id.btnTranslate);
btnTrans.setOnClickListener((View.OnClickListener) this);
btnInput.setOnClickListener(this);
btnSelect.setOnClickListener(this);
Spinner lang_spinner = (Spinner) findViewById(R.id.lang_spinner);
}
public void onClick(View v)
{
int id=v.getId();
switch (id){
case R.id.btnLanguage:
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
View mView = getLayoutInflater().inflate(R.layout.language_dialog, null);
mBuilder.setTitle("select language");
final Spinner mSpinner = (Spinner) mView.findViewById(R.id.lang_spinner);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.lang_array));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
SharedPreferences.Editor editor = sharedpreferences.edit();
//SELECTING LANGUAGE switch case (translate btn)-
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
Object item = adapterView.getItemAtPosition(position);
if (item != null) {
switch (position) {
case 0:
item = "-";
btnTrans.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), R.string.nista, Toast.LENGTH_LONG).show();
}
});
break;
case 1:
item = "lang1";
btnTrans.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), R.string.hrvatski, Toast.LENGTH_LONG).show();
}
});
break;
case 2:
item = "lang2";
btnTrans.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), R.string.english, Toast.LENGTH_LONG).show();
}
});
break;
}
}
//on selected save
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
//nothing selected "-"
}
});
public类MainActivity扩展AppCompatActivity实现View.OnClickListener{
SharedReferences SharedReferences;
公共静态最终字符串mypreference=“mypref”;
内喷丝头位置;
公共按钮btnTrans、BTSELECT、btnInput、btnCheck;
公共文本查看电视标题、电视消息;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSelect=(按钮)findViewById(R.id.btnLanguage);
btnInput=(按钮)findViewById(R.id.btnInput);
btnTrans=(按钮)findviewbyd(R.id.btnTranslate);
btnTrans.setOnClickListener((View.OnClickListener)this);
btnInput.setOnClickListener(这个);
btselect.setOnClickListener(此);
微调器lang\u微调器=(微调器)findViewById(R.id.lang\u微调器);
}
公共void onClick(视图v)
{
int id=v.getId();
开关(id){
案例R.id.btn语言:
AlertDialog.Builder mBuilder=新建AlertDialog.Builder(MainActivity.this);
View mView=GetLayoutFlater().充气(R.layout.language_对话框,空);
mBuilder.setTitle(“选择语言”);
最终微调器mSpinner=(微调器)mView.findviewbyd(R.id.lang\u微调器);
最终ArrayAdapter适配器=新的ArrayAdapter(MainActivity.this,
android.R.layout.simple_微调器_项,getResources().getStringArray(R.array.lang_数组));
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
mSpinner.setAdapter(适配器);
mSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
SharedReferences.Editor=SharedReferences.edit();
//选择语言开关盒(翻译btn)-
@凌驾
已选择公共位置(AdapterView AdapterView、视图视图、整型位置、长id){
对象项=adapterView.getItemAtPosition(位置);
如果(项!=null){
开关(位置){
案例0:
项目=“-”;
btnTrans.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(getApplicationContext(),R.string.nista,Toast.LENGTH\u LONG.show();
}
});
打破
案例1:
item=“lang1”;
btnTrans.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(getApplicationContext(),R.string.hrvatski,Toast.LENGTH_LONG).show();
}
});
打破
案例2:
item=“lang2”;
btnTrans.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(getApplicationContext(),R.string.english,Toast.LENGTH\u LONG.show();
}
});
打破
}
}
//在选定保存时
}
@凌驾
未选择公共无效(AdapterView AdapterView){
//未选择任何内容“-”
}
});
我是代表小于50,所以我在这里发布链接以共享偏好
从spinner获取你的Lang并将价值存储在共享优先权中。这是一个链接,展示了如何从spinner获取价值。这回答了你的问题吗?@hasanhasan它只展示了如何从spinner获取价值。Ty谢谢你的尝试,但正如我所说,我对共享偏好一无所知,所以我需要详细的解释。我真的很想尝试阿恩:我不知道在哪里申报什么。。。