1

今天我尝试创建一个带有片段活动的项目。我有一个 MainActivity 范围 FragmentActivity。MainActivity 有布局。

活动主.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button1" />

    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="2dip"
        android:background="#000" />

    <FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

</LinearLayout>

布局有 2 个按钮,以及一个用于替换 Fragment 的 FrameLayout。在 MainActivity onCreate 我插入一个片段。

主活动.java

public class MainActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        ((Button) findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Log.e("Button", "click--------------");
            }
        );
        getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout, fragment).addToBackStack(null).commit();
    }
}

当我将片段插入 R.id.frame_layout 时,我尝试触摸 button1 但它没有响应。我在logcat中看不到

请帮我!谢谢

4

2 回答 2

1

在片段中使用这个:

你的 XML :

  <Button
            android:id="@+id/btnLogin"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="yourmethod"
            android:text="Login" />

你的代码:

  public void yourmethod(View v){
    //dosomthing 
 }
于 2013-05-30T11:37:24.487 回答
0

将您的代码更改为,

    Button btn = (Button) getActivity().findViewById(
                R.id.button1);

btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                      Log.e("Button", "click--------------");

            }
        });
于 2013-05-30T11:32:44.687 回答