У меня возникла странная проблема с моей программой, которую я не могу объяснить, и до сих пор мне не удалось найти решение. У меня есть простая деятельность, которая будет переключаться между фрагментами и запускать пользователя через первоначальную настройку приложения. Первый фрагмент - это просто текстовый вид вверху, с кнопкой внизу, с установкой onClickListener для вызова метода родительской активности, однако при тестировании, когда я нажимаю на кнопку, ничего не происходит. Он не меняет цвет, как обычная кнопка, и ни один щелчок не будет зарегистрирован.Android Fragment Interface Unresponsive
Вот XML для макета:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="@string/setup_intro" />
<Button
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:clickable="true"
android:width="72dp"
android:text="@string/next_button" />
</RelativeLayout>
И это фрагмент кода, где я реализовать onClickListener
public class SetupFragmentInitialScreen extends SherlockFragment
{
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
View parentView = null;
parentView = inflater.inflate(R.layout.setup_fragment_initial_screen,
container,
false);
Button nextButton = (Button)parentView.findViewById(R.id.next_button);
nextButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Log.v("ButtonPressed", "You Pressed the button!");
((InitialActivity)getActivity()).onInitialScreenNextPress();
}
});
return parentView;
}
}
И, наконец, вот мой код для моей деятельности до сих пор
public class InitialActivity extends SherlockFragmentActivity
{
private SetupFragmentInitialScreen initialScreen;
private SetupFragmentPreferenceOneScreen preferenceOneScreen;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initialScreen = new SetupFragmentInitialScreen();
preferenceOneScreen = new SetupFragmentPreferenceOneScreen();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
android.R.anim.fade_out);
fragmentTransaction.replace(android.R.id.content,
initialScreen);
fragmentTransaction.commit();
}
public void onInitialScreenNextPress()
{
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
android.R.anim.fade_out);
fragmentTransaction.replace(android.R.id.content,
preferenceOneScreen);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}
Пока код мне кажется правильным, но, как я уже сказал, реакции нет интерфейс, когда я пытаюсь нажать кнопку.
Edit: я добавил следующий код в моей деятельности, чтобы проверить на события прикосновения
@Override
public boolean onTouchEvent(MotionEvent event)
{
super.onTouchEvent(event);
Log.v("Touch Detected", "You are touching the screen.");
return false;
}
Он регистрирует события по всему экрану, когда я коснувшись кнопки, за исключением, поэтому активность получает но пользовательский интерфейс сам по себе не является. Я также попытался загрузить другой интерфейс, который имеет пару переключателей, и они тоже не реагировали. Есть ли что-то, что я делаю неправильно с инициализацией фрагментов?
Не должно быть никаких прозрачных представлений, макет - это то, что я разместил выше, только 2 представления в относительной компоновке, и я не раздуваю ничего особенным, просто вызов транзакции фрагмента заменяет android.R.id .content. Аналогичным образом, нет никаких переопределений, кроме включений. Я предоставил весь свой код активности, и нет специальной темы, связанной со всем, это все. – WingedRayeth