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



这是我的代码。在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;

}

您正在将未初始化的theValue分配给本地value变量。把那句话翻过来。

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

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

tv.setText("" + theValue);

为什么r u声明局部变量不需要它来获取值。仅使用全局变量。您可以执行以下操作:

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

    }

相关内容

  • 没有找到相关文章

最新更新