この最初のアクティビティは、ユーザーの名前とパスワードを取得します。ユーザーがすでにアカウントを持っている場合は、2番目のビュークラスが開きます。それ以外の場合は、ユーザーが最初に歌う必要があります。
私には2つの一般的な問題があります:
1-整数の解析によりlogcatによって強制終了が通知されます
2-2番目のボタンも強制的に閉じる
package sarah.android;
import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SelesMeter2Activity extends Activity
implements OnClickListener{
EditText ed1;
EditText ed2;
Button b1;
Button b2;
SQLiteDatabase sql;
Cursor c;
Intent in;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ed1=(EditText) findViewById(R.id.ed1);
ed2=(EditText) findViewById(R.id.ed2);
b1= (Button) findViewById(R.id.bt1);
b2= (Button) findViewById(R.id.bt2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
sql=openOrCreateDatabase("db",0, null);
sql.execSQL("CREATE TABLE if not exists " +
"Employee2 (password integer NOT NULL PRIMARY KEY,name text NOT NULL)");
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//log in
if(arg0.getId()==R.id.bt1)
{
String name=ed1.getText().toString();
Integer pass=Integer.parseInt
(ed2.getText().toString());
if(c.getCount()!=0)
{
c=sql.rawQuery("select * from Employee", null);
while(c.moveToNext())
{
if(name.equals("c.getString(1)")&&pass==c.getInt(0))
{
in=new Intent(this,secondview.class);
startActivity(in);
break;
}
}
}
else
{
Toast.makeText(this,"please sign up first or enter " +
"correct data", 2000).show();
}
}
else if(arg0.getId()==R.id.bt2)
{
//sign up
Intent in2=new Intent(this,signup.class);
startActivity(in);
}
}
}
ユーザーの新しい情報を入力するsingupクラス:package sarah.android;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;
public class signup extends Activity
implements OnClickListener{
EditText e1;
EditText e2;
SelesMeter2Activity obj;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.singupx);
Intent in =getIntent();
e1=(EditText) findViewById(R.id.ed1s);
e2=(EditText) findViewById(R.id.ed2s);
obj=new SelesMeter2Activity();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String n=e1.getText().toString();
int p=Integer.parseInt(e2.getText().toString());
obj.sql.execSQL("insert into Employee2 (password,name)values('"+n+"',"+p+")");
}
}