2

问候,请查看我的代码并帮助我查找错误。

代码:

主要活动类(单击方法上的按钮):

public void editm(View w) {
    /*this method called when i click on Profile button that is on MainActivity(A)*/
    Intent pro=new Intent(MainActivity.this,profile.class);
    startActivity(new Intent(pro));
}

意图类:

public class profile extends Activity
{
    String ptrm;
    View v=null;
    pdatabasehelper phelper;
    EditText ed1;
    EditText ed2;
    EditText ed3;
    EditText ed4;
    EditText ed5;
    EditText ed6;
    TextView ptn;
    TextView kt0;
    TextView kt1;
    TextView kt2;
    TextView kt3;
    TextView kt4;
    TextView kt5;
    TextView kt6;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.profilec);
        pshow(v);
        //Toast.makeText(getBaseContext(), "helloo new", 10).show();
    }

    public void pshow(View w) {
        //this method called to fetch out the database values
        onStartp();
        onstart();
        Boolean flag=false;
        try {
            flag=phelper.pshowrecord(ptrm);
        } catch(Exception e){
            Toast.makeText(getBaseContext(), "SOme display error", 20).show();
        }
        if(flag==true) {
            kt1.setText(phelper.name);
            kt2.setText(phelper.guardian);
            kt3.setText(phelper.number);
            kt4.setText(phelper.address);
            kt5.setText(phelper.medical);
            kt6.setText(phelper.another);
        }
        else {
            Toast.makeText(this,"Add a Contact", 50).show();
        }
    }

    public void pbackmeth(View w) {
        /* this method called when i move back from edit activity(C)
         * to profile activity(B)
         */
        setContentView(R.layout.profilec);
        pshow(v);
    }

    public void calledit(View w)
    {
        // this method called when i click on edit button,which is
        // there below the profile.
        setContentView(R.layout.editc);
    }

    public void onStartp() {
        kt1=(TextView)findViewById(R.id.ptext3);
        kt2=(TextView)findViewById(R.id.ptext5);
        kt3=(TextView)findViewById(R.id.ptext7);
        kt4=(TextView)findViewById(R.id.ptext9);
        kt5=(TextView)findViewById(R.id.ptext11);
        kt6=(TextView)findViewById(R.id.ptext13);
    }

    public void onstart() {

        ed1=(EditText)findViewById(R.id.jname);
        ed2=(EditText)findViewById(R.id.jeditText1);
        ed3=(EditText)findViewById(R.id.jeditText2);
        ed4=(EditText)findViewById(R.id.jeditText3);
        ed5=(EditText)findViewById(R.id.jeditText4);
        ed6=(EditText)findViewById(R.id.jaeditText1);
        ptn=(TextView)findViewById(R.id.jprofile);
        phelper=new pdatabasehelper(this);
    }

    public void savemethj(View w)
    {
        // this method called when i click on Save button which is
        // in activity(C).
        onstart();

        long a;

        ptrm=ptn.getText().toString();

        String edt1=ed1.getText().toString();
        String edt2=ed2.getText().toString();

        String edt3=ed3.getText().toString();
        String edt4=ed4.getText().toString();

        String edt5=ed5.getText().toString();
        String edt6=ed6.getText().toString();

        try {
            a=phelper.insertpro(ptrm,edt1, edt2, edt3, edt4, edt5, edt6);

            if(a>=1) {
                Toast.makeText(getBaseContext(),a+ "Record Successfully Saved", 30).show();
            }
            else {
                Toast.makeText(getBaseContext(),  "Not Saved", 30).show();
            }
        }catch(Exception e) {
            Toast.makeText(getBaseContext(), "Errrrrrrrrrrr", Toast.LENGTH_SHORT).show();
        }
    }
}

数据库类:

public class pdatabasehelper extends SQLiteOpenHelper {

    final static String databasename="demop";
    final static int databaseversion=1;
    String name,guardian,number,address,medical,another=null;

    public pdatabasehelper(Context ctx) {
        super(ctx,databasename,null,databaseversion);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try {
            Log.d("tag4545","database");
            db.execSQL("create table mypro(id text,name text,guardian text,number text,address text,medical text,another text)");
        }
        catch(SQLException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("drop table if Exists mypic");
        //  db.execSQL("drop table if Exists emer");
        onCreate(db);
    }

    public long insertpro(String id,String e1,String e2,String e3,String e4,String e5,String e6)
    {
        SQLiteDatabase base=getWritableDatabase();
        ContentValues value=new ContentValues();
        byte[] data = getBitmapAsByteArray(img);
        value.put("id", id);
        value.put("name", e1);
        value.put("guardian", e2);
        value.put("number", e3);
        value.put("address", e4);
        value.put("medical", e5);
        value.put("another", e6);

        long a=base.insert("mypro",null,value);

        return a;
    }

    public boolean pshowrecord(String id)
    {
        SQLiteDatabase base=getWritableDatabase();
        try
        {
            Cursor cs=base.query("mypro", new String[]{"name","guardian","number","address","medical","another"},"id=?", new String[]{String.valueOf(id)}, null, null, null);

            if(cs!=null) {

                cs.moveToFirst();
                 Log.d("Big Error"," Programe Stop");
                name=cs.getString(0);
                guardian=cs.getString(1);
                number=cs.getString(2);
                address=cs.getString(3);
                medical=cs.getString(4);
                another=cs.getString(5);
                return true;
            }
            else {
                return false;
            }
        }
        catch(Exception e)
        {
            return false;
        }
    }

    public void deleterecord(String pe_id)
    {
        SQLiteDatabase base=getWritableDatabase();
        base.delete("mypro","id=?",new String[]{pe_id});
    }
}

我希望每次通过 MainActivity 按钮(配置文件)或活动 C 按钮(返回配置文件)调用我的活动(活动 B 或配置文件),然后我从数据库中获取所有值以在活动 B 或配置文件上显示它。

我在打印“Log.d(“Big Error”,“Programe Stop”)时遇到错误;” 在 pshowrecord(字符串 id)中。但是当我在编辑配置文件中输入值时,即当我编辑配置文件值并移回配置文件时,这种方法可以正常工作。但是当我再次启动我的应用程序并单击第一个活动(即主要活动)中的配置文件按钮时调用它时,即使我在数据库中有值,也会生成此日志并且应用程序停止工作,因为它在我单击按钮时显示“返回个人资料”。

请帮忙,一天后我需要这个代码。谢谢

Xml 代码:

主要活动 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"
    tools:context=".MainActivity" 
   android:background="@drawable/gb28"
  >


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="edit"
        android:onClick="editm" />


  </RelativeLayout>

配置文件 xml 代码:

  <?xml version="1.0" encoding="utf-8"?>
  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

   <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gb2"
     >

    <TextView
        android:id="@+id/ptext1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="PROFILE"
        android:textAppearance="?android:attr/textAppearanceLargeInverse" />

    <TextView
        android:id="@+id/ptext2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ptext1"
        android:layout_marginTop="16dp"
        android:text="Name"
        android:textAppearance="?android:attr/textAppearanceLargeInverse" />

    <TextView 
        android:id="@+id/ptext3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/ptext2"
          android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp"

        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />

            <TextView 
        android:id="@+id/ptext4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="guardian"
        android:layout_below="@+id/ptext3"


        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
                    <TextView 
        android:id="@+id/ptext5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp"
        android:layout_below="@+id/ptext4"


        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
                            <TextView 
        android:id="@+id/ptext6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="Cell Number"
        android:layout_below="@+id/ptext5"


        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
                                    <TextView 
        android:id="@+id/ptext7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp"
        android:layout_below="@+id/ptext6"


        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
        <TextView 
        android:id="@+id/ptext8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="Address"
        android:layout_below="@+id/ptext7"


        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
                <TextView 
        android:id="@+id/ptext9"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"

        android:layout_below="@+id/ptext8"
       android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp"

        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
                        <TextView 
        android:id="@+id/ptext10"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="Medical Problem"
        android:layout_below="@+id/ptext9"


        android:textAppearance="?android:attr/textAppearanceLargeInverse"
        />
                        <TextView
                            android:id="@+id/ptext11"
                            android:layout_width="fill_parent"
                            android:layout_height="wrap_content"
                           android:layout_below="@id/ptext10"
                             android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp"
                            android:textAppearance="?android:attr/textAppearanceLargeInverse" />

                        <TextView
                            android:id="@+id/ptext12"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                           android:layout_below="@id/ptext11"
                           android:text="Another Description"
                            android:textAppearance="?android:attr/textAppearanceLargeInverse" />


                        <TextView
                            android:id="@+id/ptext13"
                            android:layout_width="fill_parent"
                            android:layout_height="wrap_content"
                           android:layout_below="@id/ptext12"
                             android:inputType="textMultiLine"
                           android:isScrollContainer="true"
                           android:minHeight="20dp"
              android:textAppearance="?android:attr/textAppearanceLargeInverse" />
                        <Button 
                            android:id="@+id/peditb"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"
                            android:layout_below="@id/ptext13"
                            android:text="Edit Profile"
                            android:onClick="calledit"
                            />
        </RelativeLayout>

  </ScrollView>

编辑活动xml代码:

 <?xml version="1.0" encoding="utf-8"?>
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
 android:layout_height="match_parent" 

  android:background="@drawable/gb2"
 >
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/gb2"
    >

    <TextView
        android:id="@+id/jprofile"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="PROFILE"
        android:textAppearance="?android:attr/textAppearanceLargeInverse" />

     <TextView
         android:id="@+id/jtextView5"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignLeft="@+id/jeditText2"
         android:layout_below="@+id/jeditText2"
         android:text="Address"
         android:textAppearance="?android:attr/textAppearanceLargeInverse" />

     <EditText
         android:id="@+id/jeditText3"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignLeft="@+id/jtextView5"
         android:layout_alignParentRight="true"
         android:layout_below="@+id/jtextView5"
         android:ems="10"
         android:hint="Home_Address"
         android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp"
          />

     <TextView
         android:id="@+id/jtextView6"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@+id/jeditText3"
         android:text="Medical Problem"
         android:textAppearance="?android:attr/textAppearanceLargeInverse" />

     <EditText
         android:id="@+id/jeditText4"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentRight="true"
         android:layout_below="@+id/jtextView6"
         android:ems="10"
         android:hint="Medical Problems or Alergies"
         android:inputType="textMultiLine"
    android:isScrollContainer="true"
    android:minHeight="20dp"
          />

     <TextView
         android:id="@+id/jtextView2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignLeft="@+id/jtextView6"
         android:layout_below="@+id/jtextView1"
         android:layout_marginTop="28dp"
         android:text="Name"
         android:textAppearance="?android:attr/textAppearanceLargeInverse" />


     <TextView
         android:id="@+id/jtextView4"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignLeft="@+id/jtextView3"
         android:layout_below="@+id/jeditText1"
         android:text="Cell Number"
         android:textAppearance="?android:attr/textAppearanceLargeInverse" />

     <EditText
         android:id="@+id/jeditText2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignRight="@+id/jname"
         android:layout_below="@+id/jtextView4"
         android:ems="10"
         android:hint="Number"
         android:inputType="textMultiLine"
         android:isScrollContainer="true"
         android:minHeight="20dp" />

      <Button
          android:id="@+id/jphoto"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignBaseline="@+id/jeditText2"
          android:layout_alignBottom="@+id/jeditText2"
          android:layout_toRightOf="@+id/jprofile"
          android:text="Take Photo" 
          android:onClick="cammethod"
          />

      <EditText
          android:id="@+id/jname"
          android:layout_width="170dp"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_alignRight="@+id/jtextView6"
          android:layout_below="@+id/jtextView2"
          android:ems="10"
          android:hint="Enter_Name"
          android:inputType="textMultiLine"
          android:isScrollContainer="true"
          android:minHeight="20dp" >

          <requestFocus />
      </EditText>

      <TextView
          android:id="@+id/jtextView3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_below="@+id/jname"
          android:text="Guardian"
          android:textAppearance="?android:attr/textAppearanceLargeInverse" />

      <EditText
          android:id="@+id/jeditText1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_alignRight="@+id/jeditText2"
          android:layout_below="@+id/jtextView3"
          android:ems="10"
          android:hint="Guardian Name"
          android:inputType="textMultiLine"
          android:isScrollContainer="true"
          android:minHeight="20dp" />

      <TextView
          android:id="@+id/jatextView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_below="@+id/jeditText4"
          android:text="Another Description"
          android:textAppearance="?android:attr/textAppearanceLargeInverse" />

      <EditText
          android:id="@+id/jaeditText1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_alignParentRight="true"
          android:layout_below="@+id/jatextView1"
          android:ems="10"
          android:hint="Another Description"
          android:inputType="textMultiLine"
          android:isScrollContainer="true"
          android:minHeight="20dp" />

      <Button
          android:id="@+id/jsaveb"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_alignRight="@+id/jtextView5"
          android:layout_below="@+id/jaeditText1"
          android:onClick="savemethj"
          android:text="Save" />

      <Button 
           android:id="@+id/jback"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@+id/jsaveb"
          android:layout_below="@+id/jaeditText1"
          android:onClick="pbackmeth"
          android:text="Back to Profile" />
          />

  </RelativeLayout>

 </ScrollView>  
4

1 回答 1

1

在浏览活动堆栈时,您应该考虑使用 CursorLoader 来让您的视图数据保持新鲜。

http://developer.android.com/reference/android/content/CursorLoader.html

于 2013-05-17T01:15:07.113 回答