Reputation: 107
I am able to create a global object like a button or textview but I am not able to use them in my functions.
I'd like to create a global textview or edittext view where I will be able to read and modify its contents with my functions.
This is an example, I created a textview under onCreate called "titles"
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
TextView titles = (TextView)findViewById(R.id.textView);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
Later in the same activity, I have a function that tries to modify its text, instead I get an error saying cannot resolve.
public void win(){
titles.setText("Second text to display!");
}
Upvotes: 0
Views: 1977
Reputation: 2017
Declare your variables at class level outside the onCreate:
public class MainActivity extends AppCompatActivity {
TextView titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
titles = (TextView)findViewById(R.id.textView);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
Upvotes: 1
Reputation: 105
You need to define TextView
outside onCreate
to be able to access it from other functions.
public class MainActivity extends AppCompatActivity {
TextView titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
titles = (TextView)findViewById(R.id.textView);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
Then use it from other functions and it will work
public void win(){
titles.setText("Second text to display!");
}
Upvotes: 0
Reputation: 790
public class MainActivity extends AppCompatActivity {
private TextView titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
titles = (TextView)findViewById(R.id.textView);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
Upvotes: 0