簡體   English   中英

android.widget.TextView無法轉換為android.widget.EditText 5

[英]android.widget.TextView cannot be cast to android.widget.EditText 5

我的Android程序有一個我不理解的錯誤,我已經檢查了XML文件的語法,但沒有看到任何錯誤。

這里

我的錯誤:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.twitter/com.example.twitter.SettingsActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
at com.example.twitter.SettingsActivity.onCreate(SettingsActivity.java:48)

這是錯誤的行:

lblName         = (EditText) findViewById(R.id.txt_name);

我的活動:

    package com.example.twitter;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;

public class SettingsActivity extends Activity {

    AlertDialogManager alert = new AlertDialogManager(); // Alert Dialog Manager
    RefreshManager refresh = new RefreshManager(); // Refresh Manager
    SessionManager session; // Session Manager Class
    private UsersDAO dao; // Init Posts DAO
    private ListAdapter PostAdapter;
    private ImageLoader imageLoader;

    private EditText lblName, lblUsername, lblDescription, lblEmail, lblLocalisation, lblWebsite;

    // Buttons
    Button validSignup;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.account);

        dao = new UsersDAO(this); // On se connecte a la BDD
        session = new SessionManager(getApplicationContext()); // Session class instance

        lblName         = (EditText) findViewById(R.id.txt_name);
        lblUsername     = (EditText) findViewById(R.id.txt_username);
        lblDescription  = (EditText) findViewById(R.id.txt_description);
        lblEmail        = (EditText) findViewById(R.id.txt_email);
        lblLocalisation = (EditText) findViewById(R.id.txt_localisation);
        lblWebsite      = (EditText) findViewById(R.id.txt_website);

        session.checkLogin();

        // get user data from session
        HashMap<String, String> user = session.getUserDetails();

        lblName.setText(user.get(SessionManager.NAME));
        lblUsername.setText(user.get(SessionManager.USERNAME));
        lblDescription.setText(user.get(SessionManager.DESCRIPTION));
        lblEmail.setText(user.get(SessionManager.EMAIL));
        lblLocalisation.setText(user.get(SessionManager.LOCALISATION));
        lblWebsite.setText(user.get(SessionManager.WEBSITE));

        // Login button
        validSignup = (Button) findViewById(R.id.valid_setting);

        // Login button click event
        validSignup.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                // Get username, password from EditText
                String upd_name         = lblName.getText().toString();
                String upd_username     = lblUsername.getText().toString();
                String upd_description  = lblDescription.getText().toString();
                String upd_email        = lblEmail.getText().toString();
                String upd_localisation = lblLocalisation.getText().toString();
                String upd_website      = lblWebsite.getText().toString();

                                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String d = sdf.format(new Date());
                Integer id_user = 2;

                dao.update(id_user, upd_username, upd_email, upd_name, upd_description, upd_website, upd_localisation, d);

                // Check if username, password is filled                
                if( upd_name.trim().length() > 0 
                        && upd_username.trim().length() > 0 
                        && upd_description.trim().length() > 0 
                        && upd_email.trim().length() > 0 
                        && upd_localisation.trim().length() > 0
                        && upd_website.trim().length() > 0 ){

                    // For testing puspose username, password is checked with sample data
                    // get the current date
                    //dao = new UsersDAO(getApplicationContext());

                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    String d = sdf.format(new Date());

                    System.out.println("time "+d);
                    Integer id_user = 2;

                    dao.update(id_user, upd_username, upd_email, upd_name, upd_description, upd_website, upd_localisation, d);

                }else{
                    // user didn't entered username or password
                    // Show alert asking him to enter the details
                    alert.showAlertDialog(SettingsActivity.this, "Update settings fail..", "You must fill all the fields", false);
                }

            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu items for use in the action bar
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle presses on the action bar items
        switch (item.getItemId()) {
            case R.id.action_refresh:
                refresh.data(getApplicationContext(), true);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

}

XML文件

    <EditText
        android:id="@+id/txt_name" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_x="0dp" 
        android:layout_y="80dp" 
        android:hint="Nom et prénom" />

    <Button
        android:id="@+id/valid_setting"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="397dp"
        android:text="Mettre à jour" />

    <TextView
        android:id="@+id/lab_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:text="Nom d utilisateur"
        android:textColor="#000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/txt_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="18dp"
        android:ems="10"
        android:hint="Nom d&apos;utilisateur" />

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="60dp"
        android:text="Nom complet"
        android:textColor="#000"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="2dp"
        android:layout_y="120dp"
        android:text="Adresse Email"
        android:textColor="#000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/txt_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="140dp"
        android:ems="10"
        android:hint="Adresse Email" />

    <TextView
        android:id="@+id/TextView03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="180dp"
        android:text="Description"
        android:textColor="#000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/txt_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="200dp" 
        android:hint="Description" />

    <TextView
        android:id="@+id/TextView04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="240dp"
        android:text="URL du site"
        android:textColor="#000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/txt_website"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="260dp" 
        android:hint="URL du site" />

    <TextView
        android:id="@+id/TextView05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="300dp"
        android:text="Localisation"
        android:textColor="#000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/txt_localisation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="320dp" 
        android:hint="Localisation" />

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="24dp"
        android:layout_y="358dp"
        android:src="@drawable/refresh" />

</AbsoluteLayout>

嘗試刪除您的R.java文件。 它將重新生成。 有時,當您在xml中移動項目時,似乎丟失了引用,因此仍然認為那里有一個TextView。

我已經解決了我的問題:我尚未更新活動的XML視圖:

之前

setContentView(R.layout.account);

setContentView(R.layout.settings);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM