it-swarm.com.ru

Android.widget, textView не может быть приведен к Android.widget, кнопка

Я продолжаю получать сообщение об ошибке во время запуска своей деятельности, и он говорит, что Android.widget.textview не может быть приведен к Android.widget.button?

XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:tools="http://schemas.Android.com/tools"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/RelativeLayout1"
    Android:layout_width="fill_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical"
    tools:ignore="HardcodedText" >

    <TextView
        Android:id="@+id/textViewName"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="false"
        Android:layout_alignParentTop="false"
        Android:text="Name:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewLevel"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentRight="true"
        Android:layout_below="@+id/textViewName"
        Android:text="Level:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewClass"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="false"
        Android:layout_below="@+id/textViewLevel"
        Android:text="Class:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewTitle"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignBaseline="@+id/textViewClass"
        Android:layout_alignBottom="@+id/textViewClass"
        Android:layout_centerHorizontal="true"
        Android:text="Title:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewXP"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textViewTitle"
        Android:layout_alignLeft="@+id/textViewTitle"
        Android:text="XP:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewGold"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/textViewXP"
        Android:layout_alignParentTop="true"
        Android:text="Gold:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewLineBreak"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_below="@+id/textViewClass"
        Android:text="________________________________________"
        Android:textAppearance="?android:attr/textAppearanceMedium"
        Android:visibility="invisible" />

    <TextView
        Android:id="@+id/textViewGoldValue"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentTop="true"
        Android:layout_toRightOf="@+id/textViewGold"
        Android:text="0"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        Android:id="@+id/button3"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentBottom="true"
        Android:layout_alignParentLeft="true"
        Android:layout_toLeftOf="@+id/textViewTitle"
        Android:text="Stats" />

    <Button
        Android:id="@+id/button2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/button3"
        Android:layout_alignParentLeft="true"
        Android:layout_marginBottom="20dp"
        Android:layout_toLeftOf="@+id/textViewTitle"
        Android:text="Equipment" />

    <Button
        Android:id="@+id/button1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/button2"
        Android:layout_alignParentLeft="true"
        Android:layout_alignRight="@+id/button2"
        Android:layout_marginBottom="22dp"
        Android:text="Inventory" />

    <Button
        Android:id="@+id/Button01"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignBaseline="@+id/button1"
        Android:layout_alignBottom="@+id/button1"
        Android:layout_alignLeft="@+id/button4"
        Android:layout_alignParentRight="true"
        Android:text="Shop" />

    <Button
        Android:id="@+id/button5"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentRight="true"
        Android:layout_below="@+id/button2"
        Android:layout_toRightOf="@+id/textViewXP"
        Android:text="Class Training" />

    <Button
        Android:id="@+id/button4"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/button5"
        Android:layout_alignParentRight="true"
        Android:layout_below="@+id/button1"
        Android:text="Crafting" />

    <TextView
        Android:id="@+id/textView4"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_below="@+id/textViewLineBreak"
        Android:text="HP:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />


    <TextView
        Android:id="@+id/textViewStrTitle"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textViewLineBreak"
        Android:layout_alignLeft="@+id/textViewGoldValue"
        Android:text="N/A"
        Android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        Android:id="@+id/textViewXPValue"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/textViewGoldValue"
        Android:layout_below="@+id/textViewGoldValue"
        Android:text="0"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewLevelValue"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textViewClass"
        Android:layout_toRightOf="@+id/textViewName"
        Android:text="1"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/TextViewStrClass"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textViewLineBreak"
        Android:layout_alignLeft="@+id/textViewLevelValue"
        Android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        Android:id="@+id/textViewRace"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_below="@+id/textViewClass"
        Android:text="Race:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textView1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignBaseline="@+id/textView4"
        Android:layout_alignBottom="@+id/textView4"
        Android:layout_toLeftOf="@+id/TextViewStrClass"
        Android:text="10"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        Android:id="@+id/spinnerMonsters"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_below="@+id/textView4"
        Android:layout_marginTop="50dp"
        Android:layout_toLeftOf="@+id/btnBattle"
        Android:entries="@array/Monsters"
        Android:Prompt="@string/MonsterPrompt" />

    <TextView
        Android:id="@+id/textView2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/spinnerMonsters"
        Android:layout_alignRight="@+id/textViewXPValue"
        Android:text="10"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        Android:id="@+id/btnBattle"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentRight="true"
        Android:layout_alignTop="@+id/spinnerMonsters"
        Android:text="Battle!" />

    <TextView
        Android:id="@+id/textView3"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textViewStrTitle"
        Android:layout_alignRight="@+id/spinnerMonsters"
        Android:layout_marginRight="14dp"
        Android:text="/"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewXpNextLevel"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignBaseline="@+id/textViewLevel"
        Android:layout_alignBottom="@+id/textViewLevel"
        Android:layout_alignLeft="@+id/btnBattle"
        Android:text="100"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textViewBattleResults"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_below="@+id/spinnerMonsters"
        Android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        Android:id="@+id/textViewStrRace"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textView1"
        Android:layout_toRightOf="@+id/textViewClass"
        Android:text="l"
        Android:textAppearance="?android:attr/textAppearanceSmall" />


    <TextView
        Android:id="@+id/textViewStrAlliance"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_above="@+id/textView2"
        Android:layout_alignParentRight="true"
        Android:layout_toRightOf="@+id/textViewStrTitle"
        Android:text="Small Text"
        Android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        Android:id="@+id/textViewAlliance"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_below="@+id/textViewTitle"
        Android:layout_toRightOf="@+id/button1"
        Android:text="Alliance:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        Android:id="@+id/textView6"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/textViewAlliance"
        Android:layout_below="@+id/textViewLineBreak"
        Android:text="MP:"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

Что здесь происходит? Я прошел через это несколько раз и ничего не могу найти

Правка:

09-17 18:28:51.485: E/AndroidRuntime(724): FATAL EXCEPTION: main
09-17 18:28:51.485: E/AndroidRuntime(724): Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.intent_buttontests/com.example.intent_buttontests.PlayScreen}: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to Android.widget.Button
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1956)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1981)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.ActivityThread.access$600(ActivityThread.Java:123)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1147)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.os.Handler.dispatchMessage(Handler.Java:99)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.os.Looper.loop(Looper.Java:137)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.ActivityThread.main(ActivityThread.Java:4424)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Java.lang.reflect.Method.invokeNative(Native Method)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Java.lang.reflect.Method.invoke(Method.Java:511)
09-17 18:28:51.485: E/AndroidRuntime(724):  at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:784)
09-17 18:28:51.485: E/AndroidRuntime(724):  at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551)
09-17 18:28:51.485: E/AndroidRuntime(724):  at dalvik.system.NativeStart.main(Native Method)
09-17 18:28:51.485: E/AndroidRuntime(724): Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to Android.widget.Button
09-17 18:28:51.485: E/AndroidRuntime(724):  at com.example.intent_buttontests.PlayScreen.onCreate(PlayScreen.Java:110)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.Activity.performCreate(Activity.Java:4465)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1049)
09-17 18:28:51.485: E/AndroidRuntime(724):  at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1920)
09-17 18:28:51.485: E/AndroidRuntime(724):  ... 11 more
26
Adariel Lzinski

Я добавил logcat. Но я понятия не имею, что происходит 

Это важная информация в вашем файле LogCat:

Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to Android.widget.Button
  at com.example.intent_buttontests.PlayScreen.onCreate(PlayScreen.Java:110)

Вы правильно прочитали ошибку, это ClassCastException. Строки ниже Caused by... сообщают вам, где была выдана ошибка, которая находится в PlayScreen.onCreate() на строке 110. Как лучше всего я могу сказать, строка 110:

Button btnBattle = (Button) findViewById(R.id.btnBattle);

Но эта строка в порядке, и XML для btnBattle тоже выглядит хорошо ...

Я сам запустил вашу активность с вашим макетом и не получил никаких ошибок. Вы убрали свой проект? Часто это удаляет эти «фантомные» ошибки . (В Eclipse, Project -> Clean ... )


У меня есть одно предложение, у вас есть много кнопок, которые выполняют аналогичные задачи. Вы можете выполнять те же действия с гораздо меньшим количеством кода, если используете атрибут XML onClick. Сначала создайте метод (назовите его launchClick()) в своей Activity следующим образом:

public void launchClick(View v) {
    Intent intent;

    switch(v.getId()) {
    case R.id.button1:
        intent = new Intent(PlayScreen.this, Inventory.class);
        break;

    case R.id.button2:
        intent = new Intent(PlayScreen.this, Equipment.class);
        break;

    // etc, etc
    }
    startActivityForResult(intent, 0);
};

И добавьте атрибут Android:onClick к каждой кнопке, что вы должны иметь такое поведение в play_screen.xml:

<Button
    Android:id="@+id/button3"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    Android:layout_toLeftOf="@+id/textViewTitle"
    Android:onClick="launchClick"
    Android:text="Stats" />

Надеюсь, это поможет!

87
Sam

Проект -> Чистый может помочь вам.

27
aviomaksim

вы пытаетесь привести TextView к Button

для TextView сделайте это:

TextView tv = (TextView)findviewById(R.id.your textviewid present in xml layout file);

для Button:

Button btn1 = (Button)findviewById(R.id.your buttonid present in xml layout file);
3
sanjay

Я использую RelativeLayout с 3 textViews и 2 кнопками. Я получаю ту же причудливую ошибку при перемещении размещения textViews с помощью редактора графического интерфейса. Если я верну их туда, где они изначально были, ошибка исчезнет. 

Я могу избавиться от ошибки:

  1. Вырежьте все данные из нарушающего XML-файла в буфер обмена.
  2. Сохраните проект.
  3. Очистите проект (см. Ошибку в файле XML)
  4. Вставьте обратно код XML и сохраните
  5. Чистый
  6. Бежать

Это кажется ошибкой, так как код XML является допустимым, но не создается должным образом во время выполнения.

Надеюсь, что это работает для вас . Eclipse Java EE IDE для веб-разработчиков.

Версия: Indigo Service Release 2.__ Идентификатор сборки: 20120216-1857

1
bob

В Eclipse зайдите в Project> Clean, выберите ваш проект, и все ... Ваше приложение будет работать нормально ...

1
Leonardo Sapuy
  1. Или же

Изменить элементы идентификаторы 

  1. change itemes Id's

it help :D

0
Amir Bax

Сначала убедитесь, что все TextView обращаются к правильному TextView в вашем .Java файле .. Вот так ..

TextView textview1 = (TextView) findViewById(R.id.textview1);

Ошибка как Android.widget, textView не может быть приведена к Android.widget, кнопка поднята, потому что некоторое время мы ссылались на Button вместо TextView.

Если все в порядке, тогда Очисти свой проект и обнови .. У меня все получилось ..

0
Anil Chahal

Я только что столкнулся с той же проблемой. Однако я решил использовать только «Вид» без приведения. Работает отлично. «setOnClickListener» работает так же для нашего случая.

например .View button = v.findViewById(button_id); button.setOnClickListener(...) 

0
Kar Shiang Tey

В случае, если проект чистый не работает. Причина может быть связана с использовать один и тот же идентификатор на нескольких элементах.

Убедитесь, что при назначении идентификаторов с помощью макета или программно, которые не дублируются.

Я сталкивался с этой проблемой, когда в качестве идентификатора указывал малые числа (вероятно, не лучшая практика), поскольку идентификаторы, где при столкновении с RadioButton проверяли идентификатор. 

Ура

0
David Parés

Пожалуйста, приложите ваш Java-код, чтобы узнать, где происходит проблема. Эта проблема возникает, когда вы пытаетесь преобразовать текстовое представление в кнопку.

0
knvarma