i'm new to android and i'm having some trouble accessing variables within an application. ive tried accessing it in the onClick method but its giving me erros. how do i read it? here is the simplyfied code:
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
}
}
thanks in advance
You have different issues here. First, the user may click the button before your ASyncTask finishes (race condition).
phone
is a member of fetchDBDetails
and is not accessible as just phone' in
DBDetails`
You need to somehow pass the phone variable back from the fetchDBDetails
class to your DBDetails
class.
EDIT:
You can add a public member variable public String phone
in DBDetails
and do
fetchDatenbankDetailsContext.phone = telefon;
at the end of onPostExecute()
精彩评论