尝试登录时Android应用程序崩溃

尝试登录时Android应用程序崩溃,android,web-services,Android,Web Services,嗨,我是android世界的新手。我正在尝试为我的应用程序创建一个登录页面,该页面将通过EditText获取用户id和密码,并将其发布到url中以进行登录验证。我已经写了以下代码(源互联网),但我的应用程序正在崩溃。我还想检查身份验证是否成功,但由于我的应用程序正在崩溃,我无法进一步检查。谁能帮我一下吗。下面是我的应用程序的代码。 谢谢 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.io.InputStream; 导入java.i

嗨,我是android世界的新手。我正在尝试为我的应用程序创建一个登录页面,该页面将通过EditText获取用户id和密码,并将其发布到url中以进行登录验证。我已经写了以下代码(源互联网),但我的应用程序正在崩溃。我还想检查身份验证是否成功,但由于我的应用程序正在崩溃,我无法进一步检查。谁能帮我一下吗。下面是我的应用程序的代码。 谢谢

导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.UnsupportedEncodingException;
导入java.util.ArrayList;
导入java.util.List;
导入org.apache.http.HttpResponse;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.ClientProtocolException;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpPost;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.message.BasicNameValuePair;
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
公共类登录扩展活动{
按钮ok,后退,退出;
文本视图结果;
String tag=“abc”;
/**在首次创建活动时调用*/
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void postloginanda(字符串用户名、字符串密码){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost-HttpPost=newhttppost(“(我的url)”);
试一试{
//添加用户名和密码
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“用户名”,username));
添加(新的BasicNameValuePair(“密码”,password));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
Log.i(标签“名称和密码”);
//执行HTTP Post请求
w(标记“执行HTTP Post请求”);
HttpResponse response=httpclient.execute(httppost);
字符串str=InputStreamToString(response.getEntity().getContent()).toString();
}捕获(不支持的编码异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
私有StringBuilder inputStreamToString(InputStream为){
字符串行=”;
StringBuilder总计=新StringBuilder();
//在InputStream周围包装一个BufferedReader
BufferedReader rd=新的BufferedReader(新的InputStreamReader(is));
//读取响应直到结束
试一试{
而((line=rd.readLine())!=null){
合计.追加(行);
}
}捕获(IOE异常){
e、 printStackTrace();
}
//返回完整字符串
返回总数;
}
日志:
01-02 09:13:14.802:W/dalvikvm(2933):threadid=1:线程以未捕获异常退出(组=0x40a70930)
01-02 09:13:14.951:E/AndroidRuntime(2933):致命异常:主
01-02 09:13:14.951:E/AndroidRuntime(2933):java.lang.ClassCastException:android.widget.TextView无法强制转换为android.widget.EditText
01-02 09:13:14.951:E/AndroidRuntime(2933):在com.example.project1.MainActivity$1.onClick(MainActivity.java:40)
01-02 09:13:14.951:E/AndroidRuntime(2933):在android.view.view.performClick(view.java:4202)
01-02 09:13:14.951:E/AndroidRuntime(2933):在android.view.view$PerformClick.run(view.java:17340)
01-02 09:13:14.951:E/AndroidRuntime(2933):位于android.os.Handler.handleCallback(Handler.java:725)
01-02 09:13:14.951:E/AndroidRuntime(2933):位于android.os.Handler.dispatchMessage(Handler.java:92)
01-02 09:13:14.951:E/AndroidRuntime(2933):在android.os.Looper.loop(Looper.java:137)上
01-02 09:13:14.951:E/AndroidRuntime(2933):位于android.app.ActivityThread.main(ActivityThread.java:5039)
01-02 09:13:14.951:E/AndroidRuntime(2933):位于java.lang.reflect.Method.Invokenactive(本机方法)
01-02 09:13:14.951:E/AndroidRuntime(2933):位于java.lang.reflect.Method.invoke(Method.java:511)
01-02 09:13:14.951:E/AndroidRuntime(2933):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-02 09:13:14.951:E/AndroidRuntime(2933):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-02 09:13:14.951:E/AndroidRuntime(2933):在dalvik.system.NativeStart.main(本机方法)
01-02 09:13:15.191:W/ActivityManager(278):强制完成活动com.example.project1/.MainActivity
这是主要的活动:
导入android.annotation.SuppressLint;
导入android.annotation.TargetApi;
导入android.app.Activity;
导入android.os.Build;
导入android.os.Bundle;
导入android.os.StrictMode;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
公共类MainActivity扩展了活动{
按钮ok,后退,退出;
String tag=“项目1”;
/**在首次创建活动时调用*/
@TargetApi(构建版本代码姜饼)
@SuppressLint(“新API”)
@凌驾
创建时的公共void(Bundle savedInstanceState){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//单击登录按钮
ok=(按钮)findViewById(R.id.b);
好的
import java.io.BufferedReader;
import java.io.IOException; 
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;   
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Login extends Activity {

    Button ok,back,exit;
    TextView result;
    String tag= "abc";

        /** Called when the activity is first created. */

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

    }

        public void postLoginData(String username, String password ) {
            // Create a new HttpClient and Post Header

            HttpClient httpclient = new DefaultHttpClient();


            HttpPost httppost = new HttpPost("(my url)");

            try {
                // Add user name and password


                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("username", username));
                nameValuePairs.add(new BasicNameValuePair("password", password));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                Log.i(tag, "name and password");
                // Execute HTTP Post Request
                Log.w(tag, "Execute HTTP Post Request");
                HttpResponse response = httpclient.execute(httppost);

                String str = InputStreamToString(response.getEntity().getContent()).toString();
} catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            } catch (IOException e) {
        e.printStackTrace();
            }
}


private StringBuilder inputStreamToString(InputStream is) {
        String line = "";
        StringBuilder total = new StringBuilder();
        // Wrap a BufferedReader around the InputStream
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));
        // Read response until the end
        try {
        while ((line = rd.readLine()) != null) { 
            total.append(line); 
        }
        } catch (IOException e) {
        e.printStackTrace();
        }
        // Return full string
        return total;
        }


LOGCAT:

01-02 09:13:14.802: W/dalvikvm(2933): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
01-02 09:13:14.951: E/AndroidRuntime(2933): FATAL EXCEPTION: main
01-02 09:13:14.951: E/AndroidRuntime(2933): java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
01-02 09:13:14.951: E/AndroidRuntime(2933):     at com.example.project1.MainActivity$1.onClick(MainActivity.java:40)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at android.view.View.performClick(View.java:4202)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at android.view.View$PerformClick.run(View.java:17340)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at android.os.Handler.handleCallback(Handler.java:725)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at android.os.Looper.loop(Looper.java:137)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at android.app.ActivityThread.main(ActivityThread.java:5039)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at java.lang.reflect.Method.invokeNative(Native Method)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at java.lang.reflect.Method.invoke(Method.java:511)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-02 09:13:14.951: E/AndroidRuntime(2933):     at dalvik.system.NativeStart.main(Native Method)
01-02 09:13:15.191: W/ActivityManager(278):   Force finishing activity com.example.project1/.MainActivity


This is MainActivity:

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public  class MainActivity extends Activity  {

Button ok,back,exit;

String tag= "Project 1";

    /** Called when the activity is first created. */
    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();                 
        StrictMode.setThreadPolicy(policy);             
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Login button clicked
        ok = (Button)findViewById(R.id.b);
        ok.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                EditText uname = (EditText)findViewById(R.id.id);
                String username = uname.getText().toString();

                EditText pword = (EditText)findViewById(R.id.psswd);
                String password = pword.getText().toString();
                Login l = new Login();
                l.postLoginData(username, password);


            }
        });
    }
}
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
EditText uname = (EditText)findViewById(R.id.id);
String username = uname.getText().toString();

EditText pword = (EditText)findViewById(R.id.psswd);
String password = pword.getText().toString();