如何将我的局部变量用作全局变量?

时间:2014-09-29 08:09:14

标签: android textview global-variables

这是我的代码。在onClick方法中,我想刷新textView。因此,每次单击该按钮时,该方法都会调用int value = SecondFragment.getSmashValue();。从那里我得到了我在另一个片段中设置的值。我现在必须在我的onCreate方法中设置的TextView中使用此变量。但它始终显示我的价值0!我认为它显示0,因为我试图使变量成为全局,全局值为0。

那么如何在不丢失其值的情况下使这个变量成为全局?

import com.example.viewpagertest2.R;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class Tab1Activity extends Fragment {

Button b1;
static int theValue;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.firsttabview, container, false);
    b1 = (Button) rootView.findViewById(R.id.refreshButton1);
    b1.setOnClickListener(handler);

    TextView tv = (TextView) rootView.findViewById(R.id.SP);
    tv.setText("" + theValue);

   b99.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            theValue = SecondFragment.getSmashValue();
            tv.setText("" + theValue);

        }
    });


    return rootView;


}

2 个答案:

答案 0 :(得分:0)

您正在将未初始化的theValue分配给您的本地value变量。将该陈述翻过来。

int value = SecondFragment.getSmashValue();
theValue = value;  // was value = theValue;

另外,将tv设为字段,这样您就可以从事件处理程序更新TextView。

tv.setText("" + theValue);

答案 1 :(得分:-2)

为什么你声明一个局部变量不需要它来获取值。仅使用全局变量。你可以这样做:

        if(b1==v){
          theValue = SecondFragment.getSmashValue(); //use theValue wherever u  wanted to use


    }