2013-11-29 3 views
0

Я пробовал различные возможности, чтобы избавиться от ClassCastException: android.widget.EditText не может быть передан в android.view.ViewGroup. Я попытался очистить проект, изменил макет, скорректировал их ширину и высоту, но пока не смог его решить. В тот момент, когда я касаюсь кнопки, я получаю это исключение. Пожалуйста, помогите мне.Пробовал различные возможности для решения ClassCastException: EditText не может быть передан в ViewGroup

Вот файл макета XML:

<?xml version="1.0" encoding="utf-8"?> 

<ImageView android:id="@id/top_bar_view" 
    android:layout_width="match_parent" android:layout_height="50dp" 
    android:background="@drawable/top_bar" android:contentDescription="@string/content" /> 

<TextView android:id="@+id/txt_recipients" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" android:layout_centerHorizontal="true" 
    android:layout_marginTop="8dp" android:padding="8dp" 
    android:text="@string/text_recipients" android:textColor="#FFFFFF" 
    android:textSize="16sp" /> 

<ImageButton android:id="@id/btn_back" 
    android:layout_width="80dp" android:layout_height="50dp" 
    android:layout_alignParentLeft="true" android:layout_alignParentTop="true" 
    android:contentDescription="@string/content" android:onClick="finishActivity" 
    android:paddingTop="6dp" android:src="@drawable/ic_back" /> 

<RelativeLayout android:id="@+id/Rlayout_recipients" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:layout_below="@id/top_bar_view" android:background="@drawable/bg"> 

    <EditText android:id="@+id/edt_rec_three" 
     android:layout_width="400dp" android:layout_height="25dp" 
     android:layout_alignLeft="@+id/edt_rec_two" android:layout_below="@+id/edt_rec_two" 
     android:layout_marginTop="29dp" android:background="@drawable/fill_rece" 
     android:contentDescription="@string/content" android:ems="10" 
     android:inputType="text" /> 

    <EditText android:id="@+id/edt_rec_one" android:layout_width="400dp" 
     android:layout_height="25dp" android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" android:layout_marginTop="18dp" 
     android:background="@drawable/fill_rece" android:contentDescription="@string/content" 
     android:ems="10" android:inputType="text" /> 

    <ImageButton android:id="@+id/btn_rec_add" 
     android:layout_width="25dp" android:layout_height="25dp" 
     android:layout_below="@+id/edt_rec_one" 
     android:layout_centerHorizontal="true" android:layout_marginTop="14dp" 
     android:contentDescription="@string/content" android:src="@drawable/icon_add" /> 

    <EditText android:id="@+id/edt_rec_two" android:layout_width="400dp" 
     android:layout_height="25dp" android:layout_alignLeft="@+id/edt_rec_one" 
     android:layout_below="@+id/btn_rec_add" android:layout_marginTop="20dp" 
     android:background="@drawable/fill_rece" android:contentDescription="@string/content" 
     android:ems="10" android:inputType="text"> 

     <requestFocus /> 
    </EditText> 
</RelativeLayout> 

Вот мой Java код:

public class RecipientsActivity extends Activity { 
ImageButton btn_rec_add; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_recipients);  
    addListenerForButtons(); 
} 

private void addListenerForButtons() { 
    btn_rec_add = (ImageButton) findViewById(R.id.btn_rec_add); 
    btn_rec_add.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Intent rec_addr_Intent = new Intent(RecipientsActivity.this,RecipientAddressActivity.class); 
      startActivity(rec_addr_Intent); 

     } 
    }); 

} 
+0

Пожалуйста, поделитесь своим классом Java также! –

+1

'EditText' не является подклассом' ViewGroup', таким образом вы не можете его использовать. Хотя вы не поделились своим кодом с нами, я предполагаю, что у вас есть такая строка в вашем слушателе 'onClick'' Button ': EditText et = (ViewGroup) findViewById (R.id.edt_rec_xxx); ' – pshegger

+0

@Jigar Pandya Извините за задержку в моем ответе. Я добавил код Java выше. Спасибо – user2688158

ответ

0

Это потому, EditText не подкласс ViewGroup но View. Когда is-тест терпит неудачу для определенного класса, тогда ClassCastException бросается во время выполнения.

+0

Можете ли вы указать в коде, где нужно изменить, чтобы избавиться от этого исключения. Я довольно долго боролся с этим. – user2688158

+0

нет проблемы в классе 'RecipientsActivity', поскольку здесь вы не используете' EditText', но эта проблема может быть в 'RecipientAddressActivity', как вы упомянули в одном из своих комментариев, что это исключение бросается, когда вы нажимаете на кнопка. Все, что вы делаете, это запуск новой 'Деятельности', поэтому проблема должна присутствовать там. – d3m0li5h3r

+0

@ d3mOli5h3r Большое спасибо за указание. Ты был прав. Проблема действительно в RecipientAddressActivity. – user2688158