我是android新手,在访问应用程序中的变量时遇到一些麻烦。香港专业教育学院试图访问它的onClick方法,但它给我错误。我该怎么读?
这是简单代码:
public class DBDetails extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dbdetails);
new fetchDBDetails(this).execute();
Button ButtonCall = (Button) findViewById(R.id.ButtonCall);
ButtonCall.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//READING VALUE BELOW
startActivityForResult(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone)), 1);
}
});
}
}
class fetchDBDetails extends AsyncTask<String, Void, String> {
private DBDetails fetchDBDetailsContext = null;
String phone;
public fetchDBDetails(DBDetails context) {
fetchDBContext = context;
}
@Override
protected String doInBackground(String... params) {
phone = "12345678"; //ASSIGNING VALUE HERE
}
}
提前致谢
最佳答案
您在这里有不同的问题。
首先,用户可以在ASyncTask完成之前(竞赛条件)单击该按钮。phone
是fetchDBDetails
的成员,不能仅通过phone' in
DBDetails访问。
您需要以某种方式将电话变量从fetchDBDetails
类传递回您的DBDetails
类。
编辑:
您可以在public String phone
中添加公共成员变量DBDetails
并执行
fetchDatenbankDetailsContext.phone = telefon;
在
onPostExecute()
的末尾