Android单击按钮进入下一个活动,但它冻结了布局

时间:2011-06-13 03:04:51

标签: android layout button

每个布局上都有3个按钮。当我在results.xml中单击按钮MOH时,将调用MOHactivity并显示results_health布局。但是,当我想点击results_health中的任何按钮时,就像屏幕已经冻结一样。但是,如果我单击“返回”按钮,它将返回到我的主要活动。我不知道怎么玩这个。感谢。

ResultsActivity.java与Result_PDRM.java相同; Result_MOH.java(OnCreate中())

       ImageView myMOHButton = (ImageView) findViewById(R.id.MOH_Button);  
        myMOHButton.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v)
            {  
                setContentView(R.layout.results_health);

            }  
        }); 

        ImageView myPDRMButton = (ImageView) findViewById(R.id.PDRM_Button);  
        myPDRMButton.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v)
            {  
                setContentView(R.layout.results_pdrm);
            }  
        }); 

        ImageView myMainButton = (ImageView) findViewById(R.id.Main_Button);  
        myMainButton.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v)
            {  
                setContentView(R.layout.main);

            }
        }
        ); 

result.xml与results_health.xml& result_pdrm.xml(results_health没有MOH ImageView,results_pdrm没有PDRM ImageView)

        <?xml version="1.0" encoding="utf-8"?>
        <AbsoluteLayout
         android:id="@+id/widget56"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         xmlns:android="http://schemas.android.com/apk/res/android"
          android:background="@drawable/bgnd">
        <TextView android:id="@+id/MOH" android:textStyle="bold" android:textColor="#ff00ff00" android:text="Health Details" android:layout_width="wrap_content" android:textSize="25sp" android:layout_height="wrap_content" android:layout_x="6dip" android:layout_y="9dip"></TextView>
        <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@id/JPJ_Button" android:src="@drawable/jpj1" android:layout_y="425dip" android:layout_x="2dip"></ImageView>
        <ImageView android:layout_width="wrap_content" android:id="@id/PDRM_Button" android:layout_height="wrap_content" android:src="@drawable/pdrm1" android:layout_x="94dip" android:layout_y="425dip"></ImageView>
        <ImageView android:layout_width="wrap_content" android:id="@id/JPN_Button" android:layout_height="wrap_content" android:src="@drawable/camera_48" android:layout_x="186dip" android:layout_y="425dip"></ImageView>
      <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@id/Main_Button" android:src="@drawable/camera_small" android:layout_x="277dip" android:layout_y="425dip"></ImageView>
       </AbsoluteLayout>

请帮忙。

2 个答案:

答案 0 :(得分:2)

您在此处所做的是替换当前活动的XML布局。它看起来被冻结的原因是因为你在你的代码上打了一个新的UI,但没有将任何ClickHandler附加到按钮上,因为你还在运行前一个活动的代码。

您想要做的是从一项活动转到另一项活动。要转到另一个活动,您需要声明一个意图。

ImageView myMainButton = (ImageView) findViewById(R.id.Main_Button);  
        myMainButton.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v)
            {  
                    Intent i = new Intent(ResultsActivity.this, Result_PDRM.class);
                    startActivityForResult(i,0);
            }
        }
        );

这会将您从ResultsActivity转到Result_PDRM。然后,在Result_PDRM中的onCreate中,调用:

setContentView(R.layout.results_pdrm);

确保您在Result_PDRM中的clickHandlers连接到XML布局中的正确控件。

答案 1 :(得分:1)

我认为您最好使用startActivity(new Intent(...)),以便更改布局(实际更改活动),因为您的按钮(旧布局)是仍然在新的布局工作