Context が実際にどのように機能するかを理解するのに苦労しています。今は特に必要ありませんが、近いうちに必要になると思います...
例
と呼ばれるアプリと、それぞれいくつかのアクティビティでave
呼び出されるライブラリ (それ自体がアプリ)を作成しました。xvf
それらのほとんどはトーストを通じて情報を提供するため、どこでも同じ方法を使用しています。
public void info(String txt) {
Toast.makeText(getApplicationContext(), txt, Toast.LENGTH_LONG).show();
}
今、私はそのメソッドをライブラリのクラスとして配置し、アプリ クラスとライブラリ クラスの両方からどこからでも呼び出すことを考えました。のようにコンテキストを渡したくありませんinfo.show(context, String)
。クラスが呼び出されたときにコンテキストがどこにあるかをクラスinfo
に推測させたいのです。
だから私はというクラスを作りましたinfo
:
package com.floritfoto.apps.xvf;
import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
public class info extends Activity{
private Context context;
public info() {
super();
context = (Context)getApplicationContext();
}
public void show(String txt) {
Toast.makeText(context, txt, Toast.LENGTH_LONG).show();
}
}
次に、呼び出し元のアクティビティで、info のインスタンスを作成し、info.show(String)
. これは機能します。
extend Activity
問題は、コンテキストを取得するだけではコストが高すぎるように思われることです...
私がやりたいことをする正しい方法はどれですか? 何かをする方が良いでしょうinfo(String)
...コンストラクタを作成することは許可されていないことを覚えておいてください。それはinfo(Context, String)
不正行為です。