我有一個程序片段,是一個“計時器”,它可以添加在任何地方。在片段中我以程序的方式改變一個textView,它可以很好的運行。我的問題是當從布局中使用一個視圖時,如何在片段下面的另外一個方法中用構造函數實現?
public class Timer_fragment extends android.support.v4.app.Fragment {
int testpins;
String testedpin;
TextView text;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.timer_frag, container, false);
TextView text = (TextView) v.findViewById(R.id.pwd_status);
text.setText("Setting text in fragment not main");
/* set the TextView's text, click listeners, etc. */
updateStatus();
return v;
}
所有這些代碼都能很好的運行,但是當我添加下面這段代碼時,
private void updateStatus() {
TextView text = (TextView) findViewById(R.id.pwd_status);
testPin();
text.setText(testedpin);
}
indViewById下面會出現紅線說findViewById(int)方法不是Timer_fragment類型
在你的代碼段落中已經有一個成員變量text。不要在方法中重新聲明這個成員變量,只需分配它。
text = (TextView) v.findViewById(R.id.pwd_status);
and
private void upateStatus() {
testPin();
text.setText(testedpin);
}