方法findViewById(int)未定义类型PostDetail(Fragment)

时间:2014-06-13 11:07:31

标签: java android android-fragments

我在ArticleActivity(Activity)中有代码

尝试使用PostDetail(Fragment)    findViewById(R.id.like).setOnClickListener(new ResultLikeListener(this,(TextView)findViewById(R.id.like),res));

请你能帮助我。

public class PostDetail extends Fragment{

    private int mId;
    TextView mTitle;
    WebView mWebView;
//  TextView mBody;



     private Tracker tracker;

        @Override
        public void onCreate(final Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

        }





    }



.............
}

3 个答案:

答案 0 :(得分:3)

你必须@overide片段的OnCrateView方法来获取你的小部件的id,如textview或edittext,无论你想要什么。在oncreate视图中,您必须像设置setcontentview一样在活动中对布局进行膨胀,但是在片段中,您必须为布局视图充气。代码类似于:

 public class PostDetail extends Fragment {
   TextView mTitle;
    @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        View view = (ViewGroup) inflater.inflate(R.layout.YOUR_LAYOUT_VIEW,   null);
        mTitle= (TextView ) _view.findViewById(R.id.YOUR_TEXTVIEW_ID);
       return view;
     }

}

答案 1 :(得分:0)

你需要像这样使用它:

View rootView = inflater.inflate(R.layout.article_fragnment, this, false);
TextView txtView = rootView.findViewById(R.id.like).setOnClickListener( new ResultLikeListener( this,(TextView)findViewById(R.id.like), res ));

答案 2 :(得分:0)

您需要从onCreate函数获取片段的rootView。

rootView.findViewById(R.id.like).setOnClickListener( new ResultLikeListener( this,(TextView)findViewById(R.id.like), res ));