2017-07-29 55 views
0

我試圖從數據庫中的第二列獲取值,並通過單擊列表視圖項將其放入textview。通過列表視圖項獲取數據庫列的值單擊

DBConnection的類

package com.prodev; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

import java.util.ArrayList; 

/** 
* Created by Dev_Mohamed_Sayed on 7/21/2017. 
*/ 

public class DBConnection extends SQLiteOpenHelper { 
    public static final String DbName="azkar.db"; 
    public static final int Version=1; 
    public DBConnection(Context context){ 
     super(context,DbName,null,Version); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE IF NOT EXISTS azkar_main (ID INTEGER, Name TEXT, Number INTEGER, PRIMARY KEY(ID))"); 
    } 

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

    public void InsertRowAdmin(String Name,Integer Number){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 

     contentValues.put("Name", Name); 
     contentValues.put("Number", Number); 
     db.insert("azkar_main", null, contentValues); 
    } 

    public ArrayList getAllRecord2(){ 
     ArrayList array_list2 = new ArrayList(); 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor res = db.rawQuery("select * from azkar_main", null); 
     res.moveToFirst(); 
     while (res.isAfterLast() == false){ 
      array_list2.add(res.getString(res.getColumnIndex("ID"))+ " - " + res.getString(res.getColumnIndex("Name"))+ " .. " + res.getString(res.getColumnIndex("Number"))); 
      res.moveToNext(); 
     } 
     return array_list2; 
    } 

    public void delete(Integer ID){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     db.execSQL("delete from azkar_main where ID="+ Integer.toString(ID)); 
    } 
} 

,這裏是我的Acivity我們應該在工作。

package com.prodev; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.R.layout; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.TextView; 

import java.util.ArrayList; 

public class ListActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setLogo(R.mipmap.ic_launcher); 
     getSupportActionBar().setDisplayUseLogoEnabled(true); 
     setContentView(R.layout.activity_list); 
     DBConnection db = new DBConnection(this); 
     ListView ls =(ListView)findViewById(R.id.ls); 
     ArrayList<String> arrlist = db.getAllRecord2(); 
     ls.setAdapter(new ArrayAdapter<>(this, layout.simple_list_item_1, arrlist)); 


     ListView lv = (ListView) findViewById(R.id.ls); 

     lv.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent i = new Intent(ListActivity.this, MainActivity.class); 
       startActivity(i); 

       ListView lv = (ListView) findViewById(R.id.ls); 
       TextView tv = (TextView) findViewById(R.id.textView); 

       // The Missing Part 
      } 
     }); 
    } 

    public void btn_save(View view){ 
     EditText editText =(EditText)findViewById(R.id.editText); 
     ListView ls =(ListView)findViewById(R.id.ls); 
     DBConnection db = new DBConnection(this); 
     db.InsertRowAdmin(editText.getText().toString(), 0); 

     ArrayList<String> arrlist = db.getAllRecord2(); 
     ls.setAdapter(new ArrayAdapter<>(this, layout.simple_list_item_1, arrlist)); 
     editText.setText(""); 
    } 

    public void btn_delete(View view){ 
     EditText txt = (EditText)findViewById(R.id.del); 
     ListView ls = (ListView)findViewById(R.id.ls); 
     DBConnection db = new DBConnection(this); 
     db.delete(Integer.parseInt(txt.getText().toString())); 

     ArrayList<String> arrlist=db.getAllRecord2(); 
     ls.setAdapter(new ArrayAdapter<>(this, layout.simple_list_item_1, arrlist)); 
     txt.setText(""); 
    } 

} 

MainActivity

package com.prodev; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 

import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.google.firebase.analytics.FirebaseAnalytics; 
import com.google.firebase.crash.FirebaseCrash; 


public class MainActivity extends AppCompatActivity { 

    private FirebaseAnalytics mFirebaseAnalytics; 

    private static final String TAG = "MainActivity"; 

    private AdView mAdView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); 
     FirebaseCrash.log("Activity created"); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setLogo(R.mipmap.ic_launcher); 
     getSupportActionBar().setDisplayUseLogoEnabled(true); 
     setContentView(R.layout.activity_main); 

     mAdView = (AdView) findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     mAdView.loadAd(adRequest); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.mainmenu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      // action with ID action_refresh was selected 
      case R.id.action_azkar: 
       Intent i = new Intent(MainActivity.this, ListActivity.class); 
       startActivity(i); 
       break; 
      case R.id.action_settings: 

       break; 
      default: 
       break; 
     } 

     return true; 
    } 

} 

我也想保存數量從變量將被宣佈後來到數據庫列號.. 我不知道如何,但我會窩RRY後面再談..

+0

多少列表視圖有哪些? –

+0

只有一個列表視圖 –

+0

你想在列表項目點擊上實現什麼? –

回答

0

在你列表項單擊事件,

@Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent i = new Intent(ListActivity.this, MainActivity.class); 
      i.putExtra("keyText","value to be passed!"); 
      startActivity(i); 
     } 

在您的主要活動,

Intent i = getIntent(); 
String text = i.getStringExtra("keyText"); 
TextView tv = (TextView) findViewById(R.id.textView); 
tv.setText(text); 
+0

問題解決了,我只是不知道該怎麼傳遞值,列名是Name ,,請告訴我,並感謝 –

+0

完成,再次感謝 –

相關問題