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