Saturday, 24 August 2013

Android: Spinner inside Dialog with "text message" when selected

Android: Spinner inside Dialog with "text message" when selected

I'm trying to change my spinner into: Button > Dialog > Spinner.
Works perfectly, but I can't see message when I select:
"You have selected English en-us", "You have selected Português pt-br"
Before:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
if (pos == 0) {
Toast.makeText(parent.getContext(),
"You have selected English en-us",
Toast.LENGTH_SHORT)
.show();
setLocale("en");
} else if (pos == 1) {
Toast.makeText(parent.getContext(),
"You have selected Português pt-br",
Toast.LENGTH_SHORT)
.show();
setLocale("br");
}
}
public void onNothingSelected(AdapterView<?> arg0)
{
}
});
}
public void setLocale(String lang)
{
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
My new code:
Button bt_lang = (Button) findViewById(R.bt.language);
bt_lang.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
AlertDialog.Builder builder = new
AlertDialog.Builder(MainActivity.this);
builder.setTitle("Select Language");
builder.setAdapter(adapter, new
DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
AdapterView<?> parent = null;
switch(which)
{
case 0:
setLocale("en");
Toast.makeText(parent.getContext(),
"You have selected English en-us",
Toast.LENGTH_SHORT)
.show();
case 1:
setLocale("br");
Toast.makeText(parent.getContext(),
"Você selecionou Português pt-br",
Toast.LENGTH_SHORT)
.show();
break;
}
dialog.dismiss();
}
});
builder.create();
builder.show();
}
});
}
public void setLocale(String lang)
{
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}

No comments:

Post a Comment