我有一個奇怪的問題,我的程序,我無法解釋,我迄今還沒有能夠找到解決方案。我有一個簡單的活動,可以在片段之間切換,並通過應用程序的初始設置運行用戶。第一個片段只是頂部的文本視圖,底部有一個按鈕,onClickListener設置爲在父活動上調用方法,但是在測試中,當我單擊按鈕時,什麼都不會發生。它不會像普通按鈕那樣改變顏色,並且沒有點擊似乎被註冊。Android片段界面無響應
這裏是佈局的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();
}
}
到目前爲止,我的代碼似乎是正確的,但正如我所說,沒有任何反應當我嘗試按下按鈕時的界面。
編輯:我已經添加下面的代碼到我的活動,以檢查觸摸事件
@Override
public boolean onTouchEvent(MotionEvent event)
{
super.onTouchEvent(event);
Log.v("Touch Detected", "You are touching the screen.");
return false;
}
它記錄的事件都在屏幕上,除了當我觸摸按鈕,這樣該活動接收觸摸事件,但UI本身不是。我也嘗試加載另一個有一對單選按鈕的界面,而且他們也沒有響應。有什麼我做錯了初始化片段?
不應該有任何透明的意見,佈局正是我上面發佈的,只有2個意見在相對佈局,我沒有任何特殊的膨脹,只是片段事務調用替換android.R.id 。內容。 同樣,沒有覆蓋,除了包括我提供了我所有的活動代碼,並沒有涉及自定義主題,一切都是股票。 – WingedRayeth 2013-03-23 06:04:19