2

如何为 layout_one 中的按钮设置 onClick 侦听器?我把代码放在哪里?当我把它放在 onCreateView 中时,它给了我一个错误。

public class LayoutOne extends Fragment {

    Button button;

    public static Fragment newInstance(Context context) {
        LayoutOne f = new LayoutOne();

        return f;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ViewGroup root = (ViewGroup) inflater.inflate(R.layout.layout_one, null);

        return root;

    }
4

3 回答 3

2

设置 Layout 属性android:clickable="true"android:focusable="true"android:focusableInTouchMode="true"来自 xml 或setClickable(true)来自代码。将 onClickListener 设置为:

((LinearLayout)findViewById(R.id.layout_one_id)).setClickable(true);   ((LinearLayout)findViewById(R.id.layout_one_id)).setOnClickListener(layoutOnClickListener);

    private OnClickListener layoutOnClickListener = new OnClickListener() {
            public void onClick(View v) {
               //Get Click here
            }
        };  
于 2012-07-27T06:04:29.047 回答
1

如果您这样做,它不会给出任何错误

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    ViewGroup root = (ViewGroup) inflater
            .inflate(R.layout.layout_one, null);
    Button button_one=(Button)root.findViewById(R.id.button_one);// button_one is the id of the button in your xml file
    button_one.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

    return root;

}
于 2012-07-27T06:08:31.350 回答
1

不知道你的按钮叫什么,但onCreateView()你这样做:

button = (Button)root.findViewById(R.id.layout_one_id);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        //stuff goes in here
    }
});

您的另一个选择是在 xml 中执行此操作,然后创建一个使用它的方法。例如,设置Buttonsandroid:onClick="onButtonClicked"属性,在代码中你的方法看起来像这样

public void onButtonClicked(View v) { /*Stuff*/ }
于 2012-07-27T06:09:38.570 回答