Android нажимает кнопку для следующего действия, но это замораживает макет

#android #layout #button

#Android #макет #кнопка

Вопрос:

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

ResultsActivity.java то же самое для Result_PDRM.java amp; 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 amp; 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>
  

Пожалуйста, помогите.

Комментарии:

1. Выполняете ли вы какие-либо задачи с интенсивным использованием процессора / ввода-вывода?

2. Пожалуйста, будьте более понятны. В чем проблема?

3. я делаю распознавание текста на основе захвата камерой, затем сравниваю результат из базы данных.

Ответ №1:

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

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

 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.

Ответ №2:

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