我有onClick()
的(简单)逻辑问题。
我的代码看起来像那样。
Myobject myobject ;
onCreate() {
...
myobject = ... ;
Button button=...
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
}
在我的onClick()
中,我注意到我无法访问myobject。它的值始终为空(但不在onClick()
之外。
所以,我的问题很简单。如何访问onClick()
内的myobject? (并且没有将myobject设置为final)。
感谢您的回答!!
答案 0 :(得分:1)
您可以访问类级变量,例如
YourClassName.this.classLevelVariableName.someMethod();
答案 1 :(得分:1)
这是部分格式化的代码。 在我的xml布局中,我有一个listview和底部的一些按钮。
如果我启动此代码并单击我的按钮,我将得到以下结果:
Asu:thenameimlookingfor
Asu:null
Asu:null
public class AlertSetupEditorActivity extends Activity{
private ListView listView2;
AlertSetupEditorAdapter adapter;
AlertSetUpObject asu = new AlertSetUpObject();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alertsetupeditorlistview);
asu = getAsu();
Log.d("debug","Asu :"+asu.getName());
Button button = (Button)findViewById(R.id.btn_gauche);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("debug","Asu :"+asu.getName());
Log.d("debug","Asu: "+AlertSetupEditorActivity.this.asu.getName());
}
});
}
答案 2 :(得分:0)
很难说你的代码在你的问题中没有正确格式化,但我会抓住以下答案。
如果您完全引用MyObject,例如myActivity.this.myobject
,您应该能够访问该变量。从活动中的代码中,您可以通过在活动类名称前添加“this”活动来访问它们。
答案 3 :(得分:0)
查看我如何设置我的Context ctx设置这是您正在寻找的。您可能还需要根据其使用方式进行一些线程处理。
public class WineSearch extends Activity {
private static String[] names;
private static float[] ratings;
private static int[] ids;
ListView lv;
Context ctx;
TextView searchHeader;
ProgressDialog prgDiag;
Spinner spn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this;
searchHeader = (TextView) findViewById(R.id.SearchHeader);
lv = (ListView) findViewById(R.id.WineListView);
spn = (Spinner) findViewById(R.id.ListSpin);
ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.list_choice, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn.setAdapter(adapter);
spn.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long arg3) {
Toast.makeText(parent.getContext(), parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
prgDiag = new ProgressDialog(this);
prgDiag.setCancelable(false);
this.refreshList();
}