2014-12-14 3 views
0

작업 막대 템플릿을 사용하여 Android 응용 프로그램을 개발하고 있습니다. 모든 것은 괜찮습니다. 그러나 EditText 필드를 두 번 클릭하면 응용 프로그램에 런타임 오류가 발생하고 충돌이 발생합니다. 한 번 클릭하면 아무 일도 일어나지 않고 모든 것이 정상입니다. 내가 필드를 터치 값, 아니 문제를 변경할 수 있습니다EditText 필드를 두 번 클릭하면 Android 응용 프로그램이 다운 됨

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background" 
    android:gravity="center" 
    tools:ignore="UselessParent" > 

    <RelativeLayout 
     android:id="@+id/addrun_layout_date" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true"> 
     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="150dp" 
      android:layout_height="40dp" 
      android:background="#B0B0B0" 
      android:gravity="center" 
      android:text="@string/date" 
      android:textSize="22sp" /> 

     <EditText 
      android:id="@+id/date" 
      android:layout_width="120dp" 
      android:layout_height="40dp" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/textView1" 
      android:background="#B0B0B0" 
      android:ems="10" 
      android:inputType="date" 
      android:gravity="center" 
      android:textSize="22sp" > 
     </EditText> 
    </RelativeLayout> 
    <GridLayout 
     android:id="@+id/gridLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@id/addrun_layout_date" 
     android:layout_marginTop="20dp" 
     android:columnCount="2" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="150dp" 
      android:layout_height="50dp" 
      android:layout_marginBottom="10dp" 
      android:background="#838383" 
      android:gravity="center" 
      android:text="@string/distance" 
      android:textColor="#FFFFFF" 
      android:textSize="24sp" /> 

     <EditText 
      android:id="@+id/distance" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:layout_marginLeft="20dp" 
      android:gravity="center" 
      android:background="#FFFFFF" 
      android:inputType="numberDecimal" 
      android:selectAllOnFocus="true" 
      android:clickable="false" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="150dp" 
      android:layout_height="50dp" 
      android:layout_marginBottom="10dp" 
      android:background="#838383" 
      android:gravity="center" 
      android:text="@string/time" 
      android:textColor="#FFFFFF" 
      android:textSize="24sp" /> 

     <EditText 
      android:id="@+id/time" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:layout_marginLeft="20dp" 
      android:gravity="center" 
      android:background="#FFFFFF" 
      android:inputType="numberDecimal" 
      android:selectAllOnFocus="true" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="150dp" 
      android:layout_height="50dp" 
      android:gravity="center" 
      android:layout_marginBottom="30dp" 
      android:background="#838383" 
      android:text="@string/calories" 
      android:textColor="#FFFFFF" 
      android:textSize="22sp" /> 

     <EditText 
      android:id="@+id/caloris" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:layout_marginLeft="20dp" 
      android:gravity="center" 
      android:background="#FFFFFF" 
      android:inputType="number" 
      android:selectAllOnFocus="true" 
      android:textSize="24sp" /> 

     <Button 
      android:id="@+id/addButton" 
      android:layout_width="100dp" 
      android:layout_height="35dp" 
      android:layout_gravity="center" 
      android:background="#A71926" 
      android:text="@string/add" 
      android:textColor="#FFFFFF" /> 

     <Button 
      android:id="@+id/clearButton" 
      android:layout_width="100dp" 
      android:layout_height="35dp" 
      android:layout_gravity="center" 
      android:background="#A71926" 
      android:onClick="clear" 
      android:text="@string/clear" 
      android:textColor="#FFFFFF" /> 
    </GridLayout> 

</RelativeLayout> 

여기 레이아웃의 (조각) 그냥 두 번 할 때, 그것을 클릭 로그에이 오류 메시지가 떠나 응용 프로그램이 충돌 :

> 12-14 05:41:51.496: E/AndroidRuntime(1681): FATAL EXCEPTION: main 
12-14 05:41:51.496: E/AndroidRuntime(1681): Process: prv.adt.ejree, PID: 1681 
12-14 05:41:51.496: E/AndroidRuntime(1681): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.ActionMenuItemView 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.BaseMenuPresenter.createItemView(BaseMenuPresenter.java:157) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:176) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:163) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:438) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1052) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:87) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.BaseMenuPresenter.getMenuView(BaseMenuPresenter.java:72) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.view.menu.ActionMenuPresenter.getMenuView(ActionMenuPresenter.java:154) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.widget.ActionBarContextView.initForMode(ActionBarContextView.java:230) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.app.ActionBarImpl.startActionMode(ActionBarImpl.java:455) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.app.Activity.onWindowStartingActionMode(Activity.java:5005) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionMode(PhoneWindow.java:2375) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionModeForChild(PhoneWindow.java:2362) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:665) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:665) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:665) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:665) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:665) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:665) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.View.startActionMode(View.java:4536) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.widget.Editor.startSelectionActionMode(Editor.java:1551) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.widget.Editor$SelectionModifierCursorController.onTouchEvent(Editor.java:3656) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.widget.Editor.onTouchEvent(Editor.java:1036) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.widget.TextView.onTouchEvent(TextView.java:7691) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.View.dispatchTouchEvent(View.java:7706) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.app.Activity.dispatchTouchEvent(Activity.java:2458) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.View.dispatchPointerEvent(View.java:7886) 
12-14 05:41:51.496: E/AndroidRuntime(1681):  at android.view.ViewRootImpl$Vie 

설명이 있으십니까?

+0

문제점은 xml 파일 행 17에 있으며, 해당 행은 무엇입니까? –

+0

일부 TextView의 layout_widht입니다. 나는이 문제를 발견했지만 여전히 설명이 없다고 생각한다. 위와 같은 XML에서 나는 InputType으로 날짜가있는 EditText를 가지고있다. enabled = "false"로 설정하면 해당 오류가 사라집니다 (필드에 표시된 값). 날짜 유형과 관련된 문제입니까? –

+0

나는 그렇게 생각하지 않는다. 입력 유형이 충돌을 일으키지 않는다. 오류를 일으키는 전체 XML 레이아웃을 게시 할 수 있습니까? –

답변

0

xml 레이아웃에 문제가 없습니다.하지만 android ActionMenuItemView xml 레이아웃으로 인해 자바 코드를 통해 적용한 사용자 정의를 처리 할 수 ​​없으므로 실수로 작업 표시 줄 메뉴를 확장하는 중 항목, 잊어 버린 내용 또는 놓친 내용에 대한 아이디어가 있으니 here을보십시오.

+0

하지만 레이아웃의 ActionMenuItemView와 EditText 요소 사이의 관계는 무엇입니까? 내 말은, 오류는 EditText 필드를 두 번 클릭 할 때 생성됩니다. –

+0

다음은 작업 표시 줄 메뉴를 표시하는 방법입니다. 'code' // 드롭 다운 목록을 표시 할 작업 표시 줄을 설정합니다. 마지막 ActionBar actionBar = getActionBar(); actionBar.setDisplayShowTitleEnabled (false); \t \t actionBar.setNavigationMode (ActionBar.NAVIGATION_MODE_LIST); // 작업 표시 줄에서 드롭 다운 목록 탐색을 설정하십시오. actionBar.setListNavigationCallbacks이 ( // 드롭 다운 목록을 채울 SpinnerAdapter를 지정합니다. 새로운 ArrayAdapter와 (actionBar.getThemedContext(), \t \t \t \t android.R.layout.simple_list_item_1, android.R.id.text1, 'code' –

+0

)'EditText' 필드를 두 번 클릭하면 각 클릭에 하나씩 중복 ID가 나타나고 ActionMenuItemView가 충돌하여 조각 레이아웃 ID를 제거하려고 할 수 있습니다 하나를 지정하고 작업 표시 줄 메뉴 코드없이 앱을 테스트하면 제대로 작동하는지 확인할 수 있습니다. –