2016-11-30 9 views
2

Toastを作成するために、メインアクティビティのコンテキストを別のクラスに渡したいとします。コンテキストを渡すには?

私の主なアクティビティは、ファイルを削除するクラスを呼び出します。 ファイルを削除するクラスは、ファイルが存在しない場合はトーストを呼び出します。ここで

が私のコードです:

public class MyActivity extends AppCompatActivity 
{ 
    public void onCreate(Bundle savedInstanceState) 
    { 
    // create a file 

    Button buttoncreate = (Button)findViewById(R.id.create_button); 

    Button buttondelete = (Button)findViewById(R.id.delete_button); 
    ... 

    buttondelete.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      new DeleteFile(); 
     } 
    }); 
} 

public class DeleteFile extends AsyncTask { 

@Override 
public Object doInBackground(Object[] params) { 
    File root = android.os.Environment.getExternalStorageDirectory(); 
    File dir = new File(root.getAbsolutePath() + "/mydir"); 
    if (!(dir.exists())) { 
     CharSequence text = "Files do not exist!"; 
     int duration = Toast.LENGTH_SHORT; 
     Toast toast = Toast.makeText(getApplicationContext(), text, duration); 
     toast.show(); 

    } else { 
     File file; 
     file = new File(dir, "mydata.bmp"); 
     file.delete(); 
    } 
    return(1); 
} 

} 
+0

...どのように私は、クラスの作成中に値を渡すことができますか? –

+1

誰かがあなたの質問に投票した理由がわかりません。しかし、私は彼らが私たちの残りの部分よりはるかにスマートであると確信しています。私はそれを補った。 – eric

答えて

4

まず最初に、あなたがこのクラスを設定する必要がある。この

class GlobalClass extends Application { 

    public static Context context; 

    @Override 
    public void onCreate() { 
    super.onCreate(); 
    context = getApplicationContext(); 
    } 

    } 

秒のようにアプリケーションクラス、
でグローバル変数を宣言するために静的変数を必要としますAndroidManifest.xml内アプリケーションタグ
このように:

あなたは、このデータにアクセスすることにより、Applicationオブジェクトを取得する必要がありますwhereever 210
<application 
    android:name=".GlobalClass" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Black.NoTitleBar" > 

はその後:

私はdoinbackgroudを使用
Toast toast = Toast.makeText(GlobalClass.context, text, duration); 
    toast.show(); 
+5

失礼ではなくOPを手伝ってくれる人を見てうれしいです。 – cuoka

+0

私は知っている、右?!? – eric

関連する問題