Нажмите кнопку Android, чтобы перейти к следующему действию, но оно замораживает макет - PullRequest
0 голосов
/ 13 июня 2011

У меня есть 3 кнопки на каждом макете.Когда я нажал на кнопку MOH в results.xml, MOHactivity вызывается и отображает макет results_health.Но когда я хотел нажать любую кнопку в results_health, экран как будто застыл.Но, если я нажму кнопку BACK, это вернется к моей основной деятельности.Я понятия не имею, как поиграть с этим.Спасибо.

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 ]

2 голосов
/ 13 июня 2011

То, что вы здесь делаете, - это замена макета XML для текущего действия. Причина, по которой он выглядит замороженным, заключается в том, что вы добавили новый интерфейс поверх своего кода, но не прикрепили ClickHandlers к кнопкам, потому что под капотом вы все еще выполняли код из предыдущего актива.

То, что вы ХОТИТЕ сделать, это перейти от одного занятия к другому. Чтобы перейти к другому занятию, вам нужно объявить намерение.

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. Затем в onCreate в Result_PDRM вы вызываете:

setContentView(R.layout.results_pdrm);

Убедитесь, что ваши ClickHandlers в Result_PDRM подключены к соответствующим элементам управления в макете XML.

1 голос
/ 26 июля 2013

Я думаю, вам лучше использовать startActivity(new Intent(...)), чтобы изменить макет (фактически изменить активность) , потому что ваша кнопка (в старом макете) все еще работает в новом макет

...