2012-06-27 6 views
0

나는, 이름 pagina.xml이 레이아웃 XML을했습니다 : 내가 요소의 설명을 작성 할java.lang.ClassCastException가 : android.widget.TextView

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical" > 

    <TextView 
     android:id="@+id/descrizione" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <Button 
     android:id="@+id/scelta1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/scelta3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/scelta1" 
     android:layout_alignLeft="@+id/scelta1" 
     android:layout_marginBottom="16dp" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/scelta2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/scelta3" 
     android:layout_alignLeft="@+id/scelta3" 
     android:layout_marginBottom="18dp" 
     android:text="Button" /> 

</RelativeLayout> 

,하지만 난 변수에 할당 할 때 textview 요소에서 에뮬레이터가 충돌합니다. 다음 코드입니다.

public int posizione; 
    public String stanza; 
    public string[] azioni; 
    public int[] vai; 
    public XmlPullParser xpp; 
    public EditText descr; 
    public Button scelta_1, scelta_2, scelta_3; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.pagina); 

     try { 
      carica_stanza(posizione); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (XmlPullParserException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     descr = (EditText) this.findViewById(R.id.descrizione); 
     scelta_1= (Button) this.findViewById(R.id.scelta1); 
     scelta_2= (Button) this.findViewById(R.id.scelta2); 
     scelta_3= (Button) this.findViewById(R.id.scelta3); 

    } 

이해해주세요!

+0

그것의. 'Activity'의'findViewById' 메소드를 호출하는 것이 분명합니다. –

답변

2

당신은 XML 레이아웃에 TextView을 사용하는

public TextView descr; 
// ... 
descr = (TextView) this.findViewById(R.id.descrizione); 

대신

public EditText descr; 
// ... 
descr = (EditText) this.findViewById(R.id.descrizione); 

보십시오. 하지만이 물체를 캐스팅하려고했습니다. EditText

사용 하시겠습니까? 이 텍스트를 편집 할 수있게하려면 구성 요소를 xml 및 클래스의 EditText으로 변경해야합니다.

  • 텍스트 뷰는 - 단지 텍스트를
  • 글고 치기를 인쇄 - 프로그램에서 텍스트를 편집 할 수 없습니다 믿을 수 없을만큼 멋진 스타일, 내 생각에 ... 그냥 없애하는`this` 키보드를 사용하여
+0

+ 귀하의 descr 유형을 EditText로 변경하십시오. –

+0

doh! 저주 잘라 붙여 넣기 !!!!!!! :( –

+1

몇 가지 오류는 문제를 알려줍니다. –

관련 문제