android - 如何从sqlite android中的两列中获取值并将其用于另一个 Activity

标签 android android-sqlite

package com.OneTouch.locationprovider;

import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.Context;
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;

public class Contact extends Activity implements OnClickListener
{
  EditText editName,editLat,editLng,editnumber;
  Button btnAdd,btnDelete,btnModify,btnView,btnViewAll,btnShowInfo;
  SQLiteDatabase db;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_contact);
     editName=(EditText)findViewById(R.id.editName);
      editLat=(EditText)findViewById(R.id.editLat);
      editLng=(EditText)findViewById(R.id.editLng);
      editnumber=(EditText)findViewById(R.id.editnumber);
      btnAdd=(Button)findViewById(R.id.btnAdd);
      btnDelete=(Button)findViewById(R.id.btnDelete);
     // btnModify=(Button)findViewById(R.id.btnModify);
     btnView=(Button)findViewById(R.id.btnView);
      btnViewAll=(Button)findViewById(R.id.btnViewAll);
     // btnShowInfo=(Button)findViewById(R.id.btnShowInfo);
     btnAdd.setOnClickListener(this);
     btnDelete.setOnClickListener(this);
     // btnModify.setOnClickListener(this);
      btnView.setOnClickListener(this);
      btnViewAll.setOnClickListener(this);
     // btnShowInfo.setOnClickListener(this);
      db=openOrCreateDatabase("ContactsDB", Context.MODE_PRIVATE, null);
      db.execSQL("CREATE TABLE IF NOT EXISTS contacts(name VARCHAR,lat VARCHAR,lng VARCHAR,eid VARCHAR);");
  }
  public void onClick(View view)
  {
      if(view==btnAdd)
      {
          if(editName.getText().toString().trim().length()==0||
             editLat.getText().toString().trim().length()==0||
                     editLng.getText().toString().trim().length()==0||
             editnumber.getText().toString().trim().length()==0)
          {
              showMessage("Error", "Please enter all values");
              return;
          }
          db.execSQL("INSERT INTO contacts VALUES('"+editName.getText()+"','"+editLat.getText()+"','"+editLng.getText()+
                    "','"+editnumber.getText()+"');");
          showMessage("Success", "Record added");
          clearText();
      }
      if(view==btnDelete)
      {
          if(editName.getText().toString().trim().length()==0)
          {
              showMessage("Error", "Please enter Name");
              return;
          }
          Cursor c=db.rawQuery("SELECT * FROM contacts WHERE name='"+editName.getText()+"'", null);
          if(c.moveToFirst())
          {
              db.execSQL("DELETE FROM contacts WHERE name='"+editName.getText()+"'");
              showMessage("Success", "Record Deleted");
          }
          else
          {
             showMessage("Error", "Invalid Name");
          }
          clearText();
      }
      if(view==btnModify)
     {
          if(editName.getText().toString().trim().length()==0)
          {
              showMessage("Error", "Please enter Name");
              return;
          }
          Cursor c=db.rawQuery("SELECT * FROM contacts WHERE name='"+editName.getText()+"'", null);
         if(c.moveToFirst())
          {
              db.execSQL("UPDATE contacts SET lat='"+editLat.getText()+"',lng='"+editLng.getText()+"',marks='"+editnumber.getText()+
                      "' WHERE name='"+editName.getText()+"'");
              showMessage("Success", "Record Modified");
          }
          else
         {
              showMessage("Error", "Invalid Name");
         }
         clearText();
      }
      if(view==btnView)
      {
          if(editName.getText().toString().trim().length()==0)
          {
              showMessage("Error", "Please enter Name");
              return;
          }
          Cursor c=db.rawQuery("SELECT * FROM contacts WHERE name='"+editName.getText()+"'", null);
          if(c.moveToFirst())
          {
              editLat.setText(c.getString(1));
              editLng.setText(c.getString(2));
              editnumber.setText(c.getString(3));
          }
          else
          {
              showMessage("Error", "Invalid Name");
              clearText();
          }
      }
      if(view==btnViewAll)
      {
          Cursor c=db.rawQuery("SELECT * FROM contacts", null);
          if(c.getCount()==0)
          {
              showMessage("Error", "No records found");
              return;
          }
          StringBuffer buffer=new StringBuffer();
         while(c.moveToNext())
          {
              buffer.append("Name: "+c.getString(0)+"\n");
              buffer.append("Lat: "+c.getString(1)+"\n");
              buffer.append("Lng: "+c.getString(2)+"\n");
              buffer.append("Number: "+c.getString(3)+"\n\n");
          }
          showMessage("Contact Details", buffer.toString());
      }
      if(view==btnShowInfo)
      {
          showMessage("Contacts DataBase", "Developed for OneTouch");
      }
  }
  public void showMessage(String title,String message)
  {
      Builder builder=new Builder(this);
      builder.setCancelable(true);
      builder.setTitle(title);
      builder.setMessage(message);
      builder.show();
  }
  public void clearText()
  {
      editName.setText("");
      editLat.setText("");
      editLng.setText("");
      editnumber.setText("");
      editName.requestFocus();
  }

这是我的数据库的代码,我必须从中获取存储在数据库中的纬度和经度值,并在我的主要 Activity 中使用它。我无法编写任何方法来实现它。请帮我编写所需方法的编码。我是安卓新手.....

最佳答案

您可以将数据发送到另一个 Activity,例如使用 intent extra: 你可以阅读这篇文章: How to use putExtra() and getExtra() for string data

另一种方法是将数据设置为应用程序类的变量(有很多方法可以做到): 其中之一你可以在这里阅读Using the Android Application class to persist data

关于android - 如何从sqlite android中的两列中获取值并将其用于另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534666/

相关文章:

javascript - react native android错误404

android - 如何从 DAO 查询返回单个 int 值?

android - 插入时数据类型不匹配(代码 20)

Android sqlite begintransaction 执行时间过长

java - Android Fragment刷新不起作用

android - 如何在Android中的套接字上实现音频调用

android - 如何清除 "in-app billing service"缓存

java - Android 实现 runOnUiThread

java - SQLite 单例方法的内存问题

java - 如何在sqlite android中通过搜索单词的首字母获取所有数据?