scienticious
scienticious

Reputation: 438

global variable in onclicklistner

I am a beginner in Android development and working on a project, I am trying to access a global variable in onclick listner but i show an error. Here is Global Class

    public class GlobalClass extends Application{

private String globalUrl;

public String getGlobalUrl() {
    return globalUrl;
}

public void setGlobalUrl(String globalUrl) {
    this.globalUrl = globalUrl;
}
    }

Here its my main activity class which shows error on getApplication(), i want to use My global variables in activity class as well as simple class.

    public class MainActivity extends Activity {
Button Enter;
EditText textEdit;
TextView text;
String url;

private static String ur = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=";



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Calling Application class (see application tag in AndroidManifest.xml)

    textEdit   = (EditText)findViewById(R.id.postalText);
     text  = (TextView) findViewById(R.id.textViewme);
    Enter = (Button)findViewById(R.id.button_Enter);



   Enter.setOnClickListener(new View.OnClickListener(){
       public void onClick(View v){
          // Intent launchActivity = new Intent(MainActivity.this,jsonParsingActivity.class);
           Intent launchActivity = new Intent(MainActivity.this,jsonParsingActivity.class);
           startActivity(launchActivity);


           url = ur+ textEdit.getText().toString();
           ((GlobalClass) this.getApplication()).setGlobalUrl(url);
           System.out.println(url);
           Log.v(url, "extended url");

   }
   });

}

How to remove this error... thanks in advance

Upvotes: 2

Views: 103

Answers (2)

daemmie
daemmie

Reputation: 6460

Just write:

MainActivity.this.getApplication()

instead of

this.getApplication()

If you call this in your View.OnClickListener it referes to the View.OnClickListener.

Upvotes: 1

Bala Saikrupa Puram
Bala Saikrupa Puram

Reputation: 721

Write this lines to place the value in global class variables

replace your code

((GlobalClass) this.getApplication()).setGlobalUrl(url);

with the below code

GlobalClass temp=new GlobalClass();
temp.setGlobalUrl(url);

Upvotes: 1

Related Questions