如何将变量的值传递给android中的另一个方法

时间:2015-02-18 13:15:59

标签: android expandablelistadapter

我有变量,它有一个值。我想将它传递给另一种方法,所以我可以在里面使用它。在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

在方法中我想使用description的值,

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));
    }

1 个答案:

答案 0 :(得分:1)

您实际上是在创建本地描述值并尝试在prepareListData()方法中使用全局描述值。

所以要解决这个问题,你需要删除&#34; String&#34;来自onCreate()方法 更改您的代码,如下所示,

字符串描述;

@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