Переменная область в Android - PullRequest
       2

Переменная область в Android

1 голос
/ 16 февраля 2011

Я новичок в 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
        }
    }

спасибо заранее

1 Ответ

1 голос
/ 16 февраля 2011

У вас здесь разные проблемы.Во-первых, пользователь может нажать кнопку до завершения ASyncTask (состояние гонки).

phone является членом fetchDBDetails и недоступен как просто phone' in DBDetails`

Вам нужно как-то передать телефонную переменную обратно из класса fetchDBDetails в класс DBDetails.

EDIT :

Вы можете добавить общедоступную переменную-член public String phone in DBDetails и do

fetchDatenbankDetailsContext.phone = telefon;

в конце onPostExecute()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...