我查看了很多帖子并尝试了它们,但似乎没有任何效果。我想这可能是我错过的。这是我正在尝试做的和我的问题:我正在尝试创建一个全局变量,所以在我的主要活动上,当用户从ListView中选择一个项目时,我想将该项目分配给变量和在我的申请中使用它。
我们创建了一个类并将其扩展到应用程序,如下所示:
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);
}
});
问题是我收到错误“此方法的类型为新的AdapterView.OnItemClickListener(){}”的方法getApplication()未定义:
((GlobalVariables) this.getApplication()).setSomeVariable(countryCode);
我读了一篇建议做以下代码的帖子,但后来我又得到了多个错误:
在范围
中无法访问GlobalVariables类型的封闭实例((GlobalVariables)GlobalVariables.this.getApplication())。setSomeVariable(“foo”);
您可以给我的任何帮助将不胜感激。
谢谢,
添
答案 0 :(得分:0)
OnItemClickListener()
是一个匿名内部类。这意味着当您this
内部this
时,OnItemClickListener
实际上引用了getApplication()
类型的对象,该对象没有方法((GlobalVariables) MainActivity.this.getApplication()).setSomeVariable(countryCode);
。
尝试:
{{1}}
答案 1 :(得分:0)
为什么不将GlobalVariables定义如下:
public class GlobalVariables
{
static String mStringValue;
}
然后,您可以在应用中的任何位置GlobalVariables.mStringValue
使用它,例如GlobalVariables.mStringValue
= countryCode;