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