Android ListFragment 中给LinearLayout添加点击事件

在Android中。我们有时不仅要给Button设置点击事件,而且要给LinearLayout设置点击事件。设置LinearLayout点击事件的方法和Button基本相同。但是在ListFragment 类中,如果在onCreate()回调方法中使用LinearLayout linearLayout = (LinearLayout ) findViewById(R.id.LinearLayout )会发生如下报错:
android-The method findViewById(int) is undefined for the type Fragment1
这个问题是如何产生的?
findViewById()方法只能出现在ListFragment 类的onCreateView()之后,而ListFragment的生命周期中,onCreate()在onCreateView()方法之前,所以不能在 onCreate()方法中使用findViewById()方法。onViewCreated()方法是最好的位置。
下面放上一个实例:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.app.ListFragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import com.application.booktravel.register.RegisterActivity2;
import com.example.booktravel.R;

/** 
 * @描述 在Fragment中要使用ListView,就要用ListFragment 
 * */  
public class Fragment1 extends ListFragment   {  

    private String TAG = Fragment1.class.getName();  
    LinearLayout linearLayout1 = null;
    LinearLayout linearLayout2 = null;
    /** 
     * @描述 在onCreateView中加载布局 
     * */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);    
        Log.i(TAG, "--------onCreate");  
    }  

    @Override  
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  
            Bundle savedInstanceState) {  
        View view = inflater.inflate(R.layout.setting_layout, container,false);  
        Log.i(TAG, "--------onCreateView");  
        return view;  
    }  


    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        view.findViewById(R.id.linearLayout1).setOnClickListener(new OnClickListener()
                {

                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        Intent intent = new Intent();
                        intent.setClass(getActivity(), RegisterActivity2.class);
                        startActivity(intent);
                    }

                } );     

    }


}  

上面的代码中,监听者用Intent实现了一个跳转。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值