[問題] 呼叫fragment前的錯誤
各位前輩大家好
小弟練習開發app中
UI架構為MainActivity→GameActivity→GameFragment(在這做資料的統計)
(設定一個Button按下後出現)
↓
→StatictiscFragment(統計的結果顯示在這)
問題出在還沒按下顯示的Button前任何需要調用到StatictiscFragment元件變數的動作都
會造成程序崩潰,我實在找不出問題出在哪裡...
public TextView mcounttime;
mcounttime = (TextView) getActivity().findViewById(R.id.txt_time);
private View.OnClickListener btnSTARTOnClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
yournum = "";//將答題緩存值設為空值
check = true;//將啟動代碼設為true
fincode = ran.nextInt(100) + 1;//隨機初始化正確值
min = "1";//將最小緩存值設為1
max = "100";//將最大緩存值設為100
mtxtmin.setText(R.string.min_1);
mtxtmax.setText(R.string.max_100);
mtxtyour.setText(R.string.empty);
mtxtres.setText(R.string.btn_start);
icounttime++;
mcounttime.setText(String.valueOf(icounttime));
}
};
以上紅字部分的mcounttime就是StatictiscFragment的元件變數
---------------補充StatictiscFragment的部分---------------
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.TextView;
/**
* A simple {@link Fragment} subclass.
*/
public class StatisticsFragment extends Fragment {
public StatisticsFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_statistics, container,
false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
GameFragment gamefrag = (GameFragment) getFragmentManager().findFragmentById(R.id.game);
gamefrag.mcounttime = (TextView) getActivity().findViewById(R.id.txt_time);
gamefrag.mcountguess = (TextView) getActivity().findViewById(R.id.txt_guesstime);
//gamefrag.mcountbingo = (TextView) getActivity().findViewById(R.id.txt_bingotime);
//gamefrag.mcountpercent = (TextView) getActivity().findViewById(R.id.txt_percent);
}
}
--
聽別人說施比受更有福
我倒認為吃比瘦更有福
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.61.44
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1442149856.A.F6B.html
※ 編輯: gndelo (61.231.61.44), 09/13/2015 21:12:26
→
09/13 22:32, , 1F
09/13 22:32, 1F
king大 我並不是抓不到StatictiscFragment的元件
而是在GameFragment設一個Button使用add方法將StatictiscFragment加入主畫面
但在按下那個Button前使用到StatictiscFragment的元件變數似乎會回傳null
但如果一開始先按下Button呼叫過的話就一切正常
→
09/13 23:12, , 2F
09/13 23:12, 2F
如上補充
→
09/14 07:46, , 3F
09/14 07:46, 3F
可是我的目的是要在GameFragment裡的動作能夠先統計再交由StatictiscFragment顯示
※ 編輯: gndelo (1.171.240.247), 09/15/2015 19:23:20
→
09/15 21:09, , 4F
09/15 21:09, 4F
→
09/15 21:09, , 5F
09/15 21:09, 5F
→
09/15 21:15, , 6F
09/15 21:15, 6F
→
09/15 21:16, , 7F
09/15 21:16, 7F
感謝 雖然還沒完全看懂newInstance的用法
突然發現把setText的部分放進StatictiscFragment就解決了...
※ 編輯: gndelo (39.9.226.166), 09/18/2015 20:32:49