我是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完成之前(竞赛条件)单击该按钮。

phonefetchDBDetails的成员,不能仅通过phone' in DBDetails访问。

您需要以某种方式将电话变量从fetchDBDetails类传递回您的DBDetails类。

编辑:

您可以在public String phone中添加公共成员变量DBDetails并执行

fetchDatenbankDetailsContext.phone = telefon;


onPostExecute()的末尾

07-28 04:45