作者Palanthas (Solinari)
看板AndroidDev
标题[问题] Fragment中的findViewByid问题
时间Sun Nov 1 14:00:24 2015
我在
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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1446357629.A.322.html
※ 编辑: Palanthas (112.105.209.155), 11/01/2015 14:09:20
1F:推 abccbaandy: 看不懂...你的程式码没完整吧 11/01 14:40
2F:→ abccbaandy: 还有程式码请找个有网站贴,别直接贴在这 11/01 14:40
6F:推 THKLuga: 稍微看了一下 R.id.article这个view是inflate在fragemet 11/01 15:07
7F:推 THKLuga: 在fragement里面 view.findViewById应该就可以了吧? 11/01 15:10
8F:→ Palanthas: 我修改ArtcleFragment 改成view.FindViewByid直接红字 11/01 15:16
9F:推 THKLuga: 试试看看 getView().findViewById(.....) 11/01 15:32
10F:→ Palanthas: 错误讯息一样 11/01 15:38
11F:→ Palanthas: NullPointerException findViewById一样为NULL 11/01 15:39
12F:推 kiwatami: 你的那个 Fragment 没有 Layout 所以会是 null 11/01 16:40
13F:→ Palanthas: 请问那为甚麽我直接以MFRG当MAINACTIVITY 时不会出错 11/01 16:44
14F:→ Palanthas: 呢? 11/01 16:44
15F:推 kiwatami: 不知道 不过我觉得你可以改成在 inflate 的时候 11/01 16:54
16F:→ kiwatami: 就先用 findViewById 取得那个物件 11/01 16:54
18F:→ kiwatami: 我是都这样用的 11/01 16:59
19F:→ Palanthas: 谢谢kiwatami大大 我在article_view中加上LinearLayou 11/01 17:04
20F:→ Palanthas: t 就成功了 您的贴的方法我会研究看看 11/01 17:05