挿入

2016-08-24 11 views
-3

私のアプリは、フラグメントクラスデシベルクラスmainactivityクラス ....... I挿入]ボタンをクリックしたときに、この番組は「DATA挿入されていない」が含まれ、 ,,,,,私は...... WHERE問題です理解してい...........これは私のコードです: Mainactivityクラス:挿入

package ir.hashem.navfragtest; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 
} 

@Override 
public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     super.onBackPressed(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    // Handle navigation view item clicks here. 
    int id = item.getItemId(); 

    if (id == R.id.nav_camera) { 
     fr1 fragment = new fr1(); 
     android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.fragment11, fragment); 
     fragmentTransaction.commit(); 


    } else if (id == R.id.nav_gallery) { 

    } else if (id == R.id.nav_slideshow) { 

    } 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 
} 

断片クラス

package ir.hashem.navfragtest; 

public class fr1 extends Fragment 
{ 

public fr1() { 
    // Required empty public constructor 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    v=inflater.inflate(R.layout.fr1, container, false); 
    mydb=new database(getActivity()); 

    btninsert= (Button) v.findViewById(R.id.btninsert); 
    btndelete= (Button) v.findViewById(R.id.btndelete); 
    name= (EditText) v.findViewById(R.id.etjens); 

    // id= (EditText) v.findViewById(R.id.editText3); 

    btndelete.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      id= (EditText) v.findViewById(R.id.etid); 
      Integer isDeleted=mydb.Delete(id.getText().toString()); 
      if(isDeleted>0) 
       Toast.makeText(fr1.this.getActivity(), "DATA DELETED", Toast.LENGTH_LONG).show(); 
      else 
       Toast.makeText(fr1.this.getActivity(), "DATA NOT DELETED", Toast.LENGTH_LONG).show(); 
     } 
    }); 

    btninsert.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      String n=name.getText().toString(); 
      boolean isinserted = mydb.inserdata(n); 
      if (isinserted == true) 
       Toast.makeText(fr1.this.getActivity(), "DATA INSERTED", Toast.LENGTH_LONG).show(); 
      else 
       Toast.makeText(fr1.this.getActivity(), "DATA NOT INSERTED", Toast.LENGTH_LONG).show(); 
     } 
    }); 

    return v; 
} 
} 

. 
. 
. 

Databaseクラス

package ir.hashem.navfragtest; 

public class database extends SQLiteOpenHelper{ 

public static final String DATABASE_NAME="market"; 
public static final String tablename="jens"; 
public static final String col1="id"; 
public static final String col2="name"; 

public database(Context context) { 
    super(context, DATABASE_NAME, null, 1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table jens (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT not null)"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS jens"); 
    onCreate(db); 
} 

public boolean inserdata(String n) 
{ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    ContentValues contentValues=new ContentValues(); 
    contentValues.put("name",n); 
    long result=db.insert("jens", null, contentValues); 
    if (result == -1) 
     return false; 
    else 
     return true; 
} 

public Cursor getAlldata() 
{ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    Cursor res=db.rawQuery("select * from jens",null); 
    return res; 
} 
public boolean updateData(String id,String n) 
{ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    ContentValues contentValues=new ContentValues(); 
    contentValues.put(col1,id); 
    contentValues.put(col2,n); 
    db.update(tablename,contentValues,"id = ?",new String[] {id}); 
    return true; 
} 
public Integer Delete(String id) 
{ 
    SQLiteDatabase db=this.getWritableDatabase(); 
    return db.delete(tablename,"id = ?",new String[] {id}); 
} 
} 
+0

のようなあなたのデータベース変数を初期化し、DBクラスの** insertdata(N)**で名前の詳細をログ取得しよう。 * ex:Log.d( "name"、n); * –

答えて

0

データベースインスタンスを使用します。これをデータベースクラスに追加します。あなたのフラグメントのクラスで

private static database databaseInstance = null; 

public static database getInstance(Context context) { 

    if (databaseInstance == null) { 

     databaseInstance = new database(context); 

    } 

    return databaseInstance; 

} 

この

mydb = database.getInstance(getActivity());