如何修复java.lang.ClassCastException:com.gc.materialdesign.views.ButtonFlat无法强制转换为android.widget.EditText

时间:2015-02-16 06:02:38

标签: android type-conversion

我正在创建一个由对话框中的注册表单组成的android应用程序。在这里,我在注册对话框中放置了一个下拉微调器。但是,这里显示出类型转换错误,即使我做了正确的类型转换。请检查并解决。我试图解决2小时。这是我的代码: package com.example.testingsample;

import com.gc.materialdesign.views.ButtonFlat;


import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;


public class MainActivity extends Activity 
{
    Button checking,spinner_check;
    EditText username,password,confirm,seq_answer;
    ButtonFlat clear,register;
    Spinner spinner;

    String[] questions = {
            "What is your first name.?",
            "What is your first pet name.?",
            "What is your school name.?",
            "What is your date of birth.?",
            };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        checking = (Button)findViewById(R.id.button1);
        checking.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) 
            {
                android.app.Dialog registration_dialog = new android.app.Dialog(MainActivity.this);
                registration_dialog.setContentView(R.layout.signup);
                registration_dialog.setTitle("MedeQuip Registration");
                username = (EditText)registration_dialog.findViewById(R.id.Dialog_edittext_username);
                password = (EditText)registration_dialog.findViewById(R.id.Dialog_edittext_password);
                confirm = (EditText)registration_dialog.findViewById(R.id.Dialog_edittext_confirmpassword);


                spinner = (Spinner)registration_dialog.findViewById(R.id.spinner1);
                ArrayAdapter adpter = new ArrayAdapter(MainActivity.this ,android.R.layout.simple_dropdown_item_1line,questions);
                spinner.setAdapter(adpter);
                spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

                    @Override
                    public void onItemSelected(AdapterView<?> parent,
                            View view, int position, long id) 
                    {
                    Toast.makeText(MainActivity.this, questions[position], Toast.LENGTH_LONG).show();

                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {
                        // TODO Auto-generated method stub

                    }
                }); 
                seq_answer = (EditText)registration_dialog.findViewById(R.id.editText1);
                clear = (ButtonFlat)registration_dialog.findViewById(R.id.dialog_button_clear);
                register = (ButtonFlat)registration_dialog.findViewById(R.id.Dialog_button_register);
                //seq_answer = (EditText)registration_dialog.findViewById(R.id.editText1);*/
                /*spinner_check.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) 
                    {
                        Toast.makeText(MainActivity.this, "Checking", Toast.LENGTH_LONG).show();
                    }   

                });*/
                registration_dialog.show();



            }
            });



    }}

这是我的对话框xml:

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

    <EditText
        android:id="@+id/Dialog_edittext_password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/Dialog_edittext_username"
        android:ems="10"
        android:hint="Password"
        android:inputType="textPassword" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/Dialog_edittext_confirmpassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/Dialog_edittext_password"
        android:ems="10"
        android:hint="Confirm Password"
        android:inputType="textPassword" />

    <EditText
        android:id="@+id/Dialog_edittext_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ems="10"
        android:hint="User Name" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="345dp"
        android:layout_height="60dp"
        android:layout_below="@+id/Dialog_edittext_confirmpassword"
        android:layout_centerHorizontal="true" />

    <com.gc.materialdesign.views.ButtonFlat
        android:id="@+id/Dialog_button_register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/dialog_button_clear"
        android:text="Register"
        android:textColor="#ffffff" >
    </com.gc.materialdesign.views.ButtonFlat>

    <com.gc.materialdesign.views.ButtonFlat
        android:id="@+id/dialog_button_clear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText1"
        android:layout_marginRight="52dp"
        android:layout_marginTop="59dp"
        android:layout_toLeftOf="@+id/Dialog_button_register"
        android:text="clear"
        android:textColor="#ffffff" >
    </com.gc.materialdesign.views.ButtonFlat>

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/spinner1"
        android:layout_marginTop="67dp"
        android:ems="10"
        android:hint="Enter your answer for security question" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

我面临同样的问题,但我用以下解决方案解决了这个问题

- &GT;如果您在Eclipse中实现一旦清理项目然后测试它。

- &GT;如果上面的内容在重启Eclipse后也无效。

希望它会对你有所帮助。