私はたくさんの投稿を調べて試しましたが、何も機能していないようです。おそらく私が見逃したものだと思います。これが私がやろうとしていることと私の問題です:グローバル変数を作成しようとしているので、メインアクティビティで、ユーザーがリストビューからアイテムを選択したときに、そのアイテムを変数に割り当て、私のアプリケーション全体でそれを使用してください。
最初にクラスを作成し、次のようにアプリケーションに拡張します。
import android.app.Application;
パブリッククラスGlobalVariablesはApplication{を拡張します
private String mStringValue;
public String getSomeVariable() {
return mStringValue;
}
public void setSomeVariable(String someVariable) {
this.mStringValue = someVariable;
}
}
次に、メインアクティビティで、このコードを配置して変数を設定します。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
// Get the cursor, positioned to the corresponding row in the result set
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
// Get the Customer Name from this row in the database.
String countryCode = cursor.getString(cursor.getColumnIndexOrThrow("CustomerName"));
Toast.makeText(getApplicationContext(), countryCode, Toast.LENGTH_SHORT).show();
((GlobalVariables) this.getApplication()).setSomeVariable(countryCode);
}
});
問題は、次の行に「メソッドgetApplication()がタイプnew AdapterView.OnItemClickListener(){}に対して未定義です」というエラーが表示されることです。
((GlobalVariables) this.getApplication()).setSomeVariable(countryCode);
次のコードを実行するように提案された投稿の1つを読みましたが、別の複数のエラーが発生します。
- getApplication()メソッドは、GlobalVariables型に対して未定義です。
GlobalVariablesタイプの囲んでいるインスタンスはスコープ内でアクセスできません
((GlobalVariables)GlobalVariables.this.getApplication())。setSomeVariable( "foo");
あなたが私に与えることができるどんな助けでも大いに感謝されるでしょう。
ありがとうございました、
ティム