#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(...))
, чтобы изменить свой макет (фактически изменить активность), потому что ваша кнопка (в старом макете) все еще работает в новом макете