如何将变量的值传递给 android 中的另一个方法
How to pass the value of a variable to another method in android
我有变量,它有一个值。我想将它传递给另一种方法,以便我可以在其中使用它。在 onCreate
中,我有描述值,我想将该值传递给 prepareListData()
,这样我就可以在那里使用它。我应该怎么做才能做到这一点。
String description;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c_activity);
String description = getIntent().getStringExtra("description");
List<String> myList = new ArrayList<String>();
myList.add(description); //description = abcd
在我想使用描述值的方法中,
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// Adding child data
listDataHeader.add(description); //need to get 1234 here, but i get null
// Adding child data
List<String> description = new ArrayList<String>();
description.add("The Shawshank");
listDataChild.put(listDataHeader.get(0), description); // Header, Child
// data
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
mExpandableList = (ExpandableListView) findViewById(R.id.lvExp);
mExpandableList.setIndicatorBounds(width - GetPixelFromDips(50), width
- GetPixelFromDips(10));
}
您实际上是在创建一个局部描述值,并试图在 prepareListData()
方法中使用全局描述值。
所以要解决这个问题,您需要从 onCreate()
方法中删除 "String"
像下面这样更改您的代码,
字符串描述;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c_activity);
description = getIntent().getStringExtra("description"); // modified line
List<String> myList = new ArrayList<String>();
myList.add(description); //description = abcd
我有变量,它有一个值。我想将它传递给另一种方法,以便我可以在其中使用它。在 onCreate
中,我有描述值,我想将该值传递给 prepareListData()
,这样我就可以在那里使用它。我应该怎么做才能做到这一点。
String description;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c_activity);
String description = getIntent().getStringExtra("description");
List<String> myList = new ArrayList<String>();
myList.add(description); //description = abcd
在我想使用描述值的方法中,
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// Adding child data
listDataHeader.add(description); //need to get 1234 here, but i get null
// Adding child data
List<String> description = new ArrayList<String>();
description.add("The Shawshank");
listDataChild.put(listDataHeader.get(0), description); // Header, Child
// data
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
mExpandableList = (ExpandableListView) findViewById(R.id.lvExp);
mExpandableList.setIndicatorBounds(width - GetPixelFromDips(50), width
- GetPixelFromDips(10));
}
您实际上是在创建一个局部描述值,并试图在 prepareListData()
方法中使用全局描述值。
所以要解决这个问题,您需要从 onCreate()
方法中删除 "String"
像下面这样更改您的代码,
字符串描述;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c_activity);
description = getIntent().getStringExtra("description"); // modified line
List<String> myList = new ArrayList<String>();
myList.add(description); //description = abcd