当我试图运行此代码时,它显示错误。问题是什么。如果你找到,请告诉我。 但我没有将Textview转换为EditText,但它显示错误。
我的xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.dailyexpenses.LoginTypeConfirmation" >
<TextView
android:id="@+id/Confirmation_password_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/Confirmation_password"
android:layout_alignParentTop="true"
android:layout_marginTop="38dp"
android:text="@string/loginType_confirm" />
<EditText
android:id="@+id/Confirmation_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/Confirmation_password_info"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:ems="10"
android:hint="@string/confirm_password"
android:inputType="textPassword" />
<Button
android:id="@+id/Confirmation_password_submit"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignLeft="@+id/Confirmation_password"
android:layout_below="@+id/Confirmation_password"
android:layout_marginTop="34dp"
android:background="@color/project_theme"
android:text="@string/submit"
android:textColor="@color/font_color" />
我的Java代码:
import android.support.v7.app.ActionBarActivity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.InputType;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class LoginTypeConfirmation extends ActionBarActivity {
private TextView info;
private EditText old_password;
private Button save;
private SQLiteDatabase db;
String login_type = null, password = null, pin_password = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_type_confirmation_ui);
db = openOrCreateDatabase("DailyExpenses", Context.MODE_PRIVATE, null);
info = (TextView) findViewById(R.id.Confirmation_password_info);
old_password = (EditText) findViewById(R.id.Confirmation_password);
save = (Button) findViewById(R.id.Confirmation_password_submit);
checkLoginType(); }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login_type_confirmation, menu);
return true;
}
public void checkLoginType()
{
Cursor c = db.rawQuery("select login_type password, pin_password from user_information", null);
while(c.moveToNext())
{
login_type = c.getString(0);
password = c.getString(1);
pin_password = c.getString(2);
}
if (login_type.equals("pin_password"))
{
info.setText("Enter your old pin");
old_password.setText("Confirm Pin");
old_password.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);
}
}
public void validatePassword(View view)
{
if (old_password.getText().toString().equals(password))
{
Intent loginType = new Intent(this, LoginType.class);
startActivity(loginType);
}
else
{
Toast.makeText(this, "Incorrect Password", Toast.LENGTH_SHORT).show();
}
}
}
如果我删除checkLoginType()方法它工作正常。 提前谢谢。
答案 0 :(得分:0)
您需要将View传递给checkLoginType()方法,它将如下所示:
public void checkLoginType(View v)
{
Cursor c = db.rawQuery("select login_type password, pin_password from user_information", null);
while(c.moveToNext())
{
login_type = c.getString(0);
password = c.getString(1);
pin_password = c.getString(2);
}
if(login_type.equals("pin_password"))
{
info.setText("Enter your old pin");
old_password.setText("Confirm Pin");
old_password.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);
}
}
如果你还面临问题,请告诉我......
答案 1 :(得分:0)
只需将public void checkLoginType()
更改为public void checkLoginType(View v)