看板 AndroidDev 關於我們 聯絡資訊
我在http://developer.android.com/training/basics/fragments/communicating.html 下載了範例練習,直接執行與測試是正常的 在來我想試試從一般的activity按一個button後 出現範例的頁面 mfrag是原本範例中的mainactivity 程式碼: MainActivity import android.app.Activity; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button main_button = (Button)findViewById(R.id.button); main_button.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this, mfrag.class); startActivity(intent); } }); } } 我按下button後,畫面出現正常,但只要點下Article one或ArticleTwo 就會出現 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 我檢查了一下 發現getActivity().findViewById(R.id.article) 為 null 直接這樣start是不行的嗎? 昨天 搞了一整天 實在是無法解決 請板上高手指導一下 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.105.209.155 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1446357629.A.322.html ※ 編輯: Palanthas (112.105.209.155), 11/01/2015 14:09:20
abccbaandy: 看不懂...你的程式碼沒完整吧 11/01 14:40
abccbaandy: 還有程式碼請找個有網站貼,別直接貼在這 11/01 14:40
abccbaandy: http://hastebin.com/ 11/01 14:41
Palanthas: JAVA程式碼網址 http://hastebin.com/ewoveboter.java 11/01 14:48
Palanthas: XML網址 http://hastebin.com/ohoqohojoq.xml 11/01 14:54
THKLuga: 稍微看了一下 R.id.article這個view是inflate在fragemet 11/01 15:07
THKLuga: 在fragement裡面 view.findViewById應該就可以了吧? 11/01 15:10
Palanthas: 我修改ArtcleFragment 改成view.FindViewByid直接紅字 11/01 15:16
THKLuga: 試試看看 getView().findViewById(.....) 11/01 15:32
Palanthas: 錯誤訊息一樣 11/01 15:38
Palanthas: NullPointerException findViewById一樣為NULL 11/01 15:39
kiwatami: 你的那個 Fragment 沒有 Layout 所以會是 null 11/01 16:40
Palanthas: 請問那為甚麼我直接以MFRG當MAINACTIVITY 時不會出錯 11/01 16:44
Palanthas: 呢? 11/01 16:44
kiwatami: 不知道 不過我覺得你可以改成在 inflate 的時候 11/01 16:54
kiwatami: 就先用 findViewById 取得那個物件 11/01 16:54
kiwatami: https://goo.gl/RKue22 11/01 16:59
kiwatami: 我是都這樣用的 11/01 16:59
Palanthas: 謝謝kiwatami大大 我在article_view中加上LinearLayou 11/01 17:04
Palanthas: t 就成功了 您的貼的方法我會研究看看 11/01 17:05