2

我是一个新手,我正在编写一个简单的 Android 应用程序,它有几个活动。在每个活动中,我必须使用进度对话框和自定义布局 Toast。我还必须在其中一些中保存和加载首选项。如何将所有这些方法放在一个单独的类中,我不想在每个活动中编写相同的代码。它可以是一个静态类吗?

谢谢你。

    private void createCustomToast(String msg, String status) {
    Context context = getApplicationContext();
    LayoutInflater inflater = getLayoutInflater();
    View toastRoot = inflater
            .inflate(R.layout.custom_toast_two_lines, null);
    TextView text = (TextView) toastRoot.findViewById(R.id.toastText);
    TextView textTriageStatus = (TextView) toastRoot
            .findViewById(R.id.status);
    textTriageStatus.setText(status);
    text.setTextColor(Color.BLACK);
    text.setText(msg);
    Toast toast = new Toast(context);
    toast.setView(toastRoot);
    toast.setGravity(Gravity.TOP | Gravity.RIGHT, 0, 0);
    toast.show();
}

private void savePreferences(String key, int value) {
    SharedPreferences sharedPreferences = getSharedPreferences(
            "APP_PREFERENCES", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putInt(key, value);
    editor.commit();
}

private String loadPreferences(String key) {
    SharedPreferences sharedPreferences = getSharedPreferences(
            "APP_PREFERENCES", MODE_PRIVATE);
    String strSavedMem1 = sharedPreferences.getString(key, "");
    return strSavedMem1;
}
4

1 回答 1

0

您可以创建另一个类来处理这种情况,但您必须将上下文传递给该方法,因为 toast 和首选项由上下文处理。上下文将有多种类型 1)Application 2)Activity 3)Service 4)Broadcast Receiver。

> >  public static void createCustomToast(Context context,String msg, String status) {
>     >     LayoutInflater inflater = getLayoutInflater();
>     >     View toastRoot = inflater
>     >             .inflate(R.layout.custom_toast_two_lines, null);
>     >     TextView text = (TextView) toastRoot.findViewById(R.id.toastText);
>     >     TextView textTriageStatus = (TextView) toastRoot
>     >             .findViewById(R.id.status);
>     >     textTriageStatus.setText(status);
>     >     text.setTextColor(Color.BLACK);
>     >     text.setText(msg);
>     >     Toast toast = new Toast(context);
>     >     toast.setView(toastRoot);
>     >     toast.setGravity(Gravity.TOP | Gravity.RIGHT, 0, 0);
>     >     toast.show(); }
>     > 
>     > public static void savePreferences(Context context,String key, int value) {
>     >     SharedPreferences sharedPreferences = context.getSharedPreferences(
>     >             "APP_PREFERENCES", MODE_PRIVATE);
>     >     SharedPreferences.Editor editor = sharedPreferences.edit();
>     >     editor.putInt(key, value);
>     >     editor.commit(); }
>     > 
>     > public void String loadPreferences(Context context,,String key) {
>     >     SharedPreferences sharedPreferences = context.getSharedPreferences(
>     >             "APP_PREFERENCES", MODE_PRIVATE);
>     >     String strSavedMem1 = sharedPreferences.getString(key, "");
>     >     return strSavedMem1; }
>     > 
>     > > Blockquote
于 2013-07-20T18:22:37.730 回答