Как передать настройку в тост
Я установил свою настройку активности и свое меню (я делал все по-старому без фрагментов, так как я работаю над API 10), мое меню получило 2 настройки параметров (которые отлично подходят к настройкам активности) и Показать настройки, это должно отображаться в пользовательский тост значения настроек. Это мой код до сих пор
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_options_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.config:
startActivity(new Intent(MainActivity.this,
OpcionesActivity.class
));
return true;
case R.id.mconfig:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.custom_toast_layout_id));
TextView text = (TextView) layout.findViewById(R.id.text);
TextView text1 = (TextView) layout.findViewById(R.id.text1);
TextView text2 = (TextView) layout.findViewById(R.id.text2);
// Toast...
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
И это мой собственный XML-файл Toast
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_layout_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFF"
android:orientation="horizontal"
android:padding="5dp" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />
</LinearLayout>
Как я могу получить доступ к значениям настроек и какой метод мне следует использовать? .setText();
У меня есть класс OpcionesActivity, который выглядит следующим образом:
public class OpcionesActivity extends PreferenceActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
И settings.xml выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="General">
<CheckBoxPreference
android:key="opcion1"
android:title="Sonido"
android:summary="Sonido" />
<EditTextPreference
android:key="opcion2"
android:title="Usuario"
android:summary="Nombre de usuario"
android:dialogTitle="Nombre" />
<ListPreference
android:key="opcion3"
android:title="Dificultad"
android:summary="Dificultad"
android:dialogTitle="Dificultad"
android:entries="@array/d"
android:entryValues="@array/dif" />
</PreferenceCategory>
</PreferenceScreen>
1 ответ
Добавьте это, прежде чем создавать тост
SharedPreferences preferences = getApplication().getSharedPreferences("your prefrens name",MODE_PRIVATE);
text.setText(preferences.getString("key","defaultValue"));
text1.setText(preferences.getString("key","defaultValue"));
text2.setText(preferences.getString("key","defaultValue"));