Android应用程序以检索拉链code为每个城市 [英] Android App which retrieves the zip code for each city

查看:129
本文介绍了Android应用程序以检索拉链code为每个城市的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是程序我发展。在第一个文件的第一和第二活动文件。用户正在进入应在数据库中搜索一个城市..和相应的拉链code应返回。如果城市是不是在数据库present,用户可以进入城市,并在第二个活动文件的zip其code ..这是工作的罚款。我遇到的第一个活动文件的问题..请帮助。

 包com.std code;进口的java.util.ArrayList;
进口的java.util.HashMap;//进口com.std code.activity2;
进口android.app.Activity;
进口android.app.ListActivity;
进口android.content.ContentProvider;
进口android.content.ContentUris;
进口android.content.ContentValues​​;
进口android.content.Context;
进口android.content.Intent;
进口android.content.UriMatcher;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
进口android.database.sqlite.SQLiteQueryBuilder;
进口android.database.sqlite.SQLiteDatabase.CursorFactory;
进口android.net.Uri;
进口android.os.Bundle;
进口android.view.KeyEvent;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.util.Log;
进口android.widget.ArrayAdapter;
进口android.widget.AutoCompleteTextView;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.RadioButton;
进口android.widget.RadioGroup;
进口android.widget.Toast;
进口android.widget.RadioGroup.OnCheckedChangeListener;公共类活动1扩展活动{    城市的EditText;
    按钮添加,秀王;
    RadioGroup中选择;
    字符串K表;
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        尝试
        {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        //最后ContentValues​​值=新ContentValues​​();
        城市=(EditText上)findViewById(R.id.editText1);
        添加=(按钮)findViewById(R.id.add);
        选择=(RadioGroup中)findViewById(R.id.radio01);
        秀王=(按钮)findViewById(R.id.button1);
        K = city.getText()的toString()。
        的CreateDatabase();
    }
        赶上(例外五)
        {        }
show1.setOnClickListener(新View.OnClickListener(){
    @覆盖
    公共无效的onClick(视图v){
        // TODO自动生成方法存根
        DB = openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,NULL);
        尝试{        如果(K ==CITY)
        {
            的String [] = result_columns新的String [] {_ ID,城市,code};
            光标光标= db.query(TABLE_NAME,result_columns,
                    CITY+像'%%?',新的String [] {K},NULL,NULL,NULL);    如果(指针!= NULL)
    {
      而(cursor.moveToNext())
      {
        字符串xnew code = cursor.getString(1);
        Toast.makeText(activity1.this,xnew code,Toast.LENGTH_LONG).show();
      }
    }
            //db.close();
        }}
        赶上(例外五)
        {
            Toast.makeText(activity1.this,故障在显示+ E,Toast.LENGTH_LONG).show();        }    }});
add.setOnClickListener(新View.OnClickListener(){    @覆盖
    公共无效的onClick(视图v){
        // TODO自动生成方法存根
        意向意图=新意图(activity1.this,activity2.class);
        startActivity(意向);
    }
});}
    公共静态最后弦乐DATABASE_NAME =myDB.db;
公共静态最后弦乐TABLE_NAME =城市codeS;
私有静态最后弦乐TABLE_CREATE =
            CREATE TABLE+ TABLE_NAME +(_id整数主键自动增量,市文不为空,code文本不是null);;SQLiteDatabase分贝;
公共无效的CreateDatabase(){
    DB = openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,NULL);
    db.execSQL(TABLE_CREATE);
    city​​.setOnKeyListener(新View.OnKeyListener(){
        @覆盖
        公共布尔安其(视图V,INT键code,KeyEvent的事件){
            // TODO自动生成方法存根
            DB = openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,NULL);
            尝试{            如果(K ==CITY)
            {
                的String [] = result_columns新的String [] {_ ID,城市,code};
                光标光标= db.query(TABLE_NAME,result_columns,
                        CITY+=?,新的String [] {K},NULL,NULL,NULL);        cursor.moveToFirst();            字符串xnew code = cursor.getString(0);
            Toast.makeText(activity1.this,xnew code,Toast.LENGTH_LONG).show();
            cursor.moveToNext();            //if(cursor.moveToFirst()){
                //做
                // {
                    //串xnewcity = cursor.getString(0);
                     //字符串xnew code = cursor.getString(1);
                        //Toast.makeText(activity1.this,xnewcity,Toast.LENGTH_LONG).show();
                    //Toast.makeText(activity1.this,xnew code,Toast.LENGTH_LONG).show();
                    //}而(cursor.moveToNext());            //}
            //db.close();
        }}
        赶上(例外五)
        {
            Toast.makeText(activity1.this,故障在显示+ E,Toast.LENGTH_LONG).show();        }
            返回true;
    }
});
    }}

这是第二个活动文件..以防万一你所需要的。

 包com.std code;//进口静态com.std code.activity1.DATABASE_NAME;
//进口静态com.std code.activity1.TABLE_NAME;
进口android.content.ContentValues​​;
进口android.content.Context;
进口android.content.Intent;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.Toast;公共类活性2扩展活动1 {    的EditText newcity;
    新的EditText code;
    按钮保存,备份;
    串city1,code1;    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main1);        newcity =(EditText上)findViewById(R.id.EditText01);
        新的code =(EditText上)findViewById(R.id.EditText02);
        回到=(按钮)findViewById(R.id.back01);
        节省=(按钮)findViewById(R.id.save01);
        back.setOnClickListener(新函数clickhandler());
        save.setOnClickListener(新函数clickhandler());
    }
        公共类函数clickhandler实现OnClickListener
        {
            公共无效的onClick(视图v)
            {
                DB = openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,NULL);
                尝试
                {
                    ContentValues​​ newValues​​ =新ContentValues​​();                    如果(V ==保存)
                    {
                        。city1 = newcity.getText()的toString();
                        code1 =新的code.getText()的toString()。
                        newValues​​.put(CITY,city1);
                        newValues​​.put(code,code1);
                        db.insert(TABLE_NAME,空,newValues​​);
                        Toast.makeText(activity2.this,价值观插入,Toast.LENGTH_LONG).show();                    }
            }
                赶上(例外五)
                {
                    Toast.makeText(activity2.this,错误+ E,Toast.LENGTH_LONG).show();
                }
back.setOnClickListener(新View.OnClickListener(){            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                意图I =新意图(activity2.this,activity1.class);
                startActivity(ⅰ);
            }
        });
    }
}
        }


解决方案

 字符串xnew code = cursor.getString(0);

0是不好的柱,应该是2。

问候,
 斯特凡

This is the first and second activity file of the program i'm developing.. in the first file.. the user is entering a city.. which shall be searched in the database and the corresponding zipcode shall be returned. If the city is not present in the database , the user can enter the city and its zip code in the second activity file.. which is working fine. I'm having problems with the first activity file.. please help.

        package com.stdcode;

import java.util.ArrayList;
import java.util.HashMap;

//import com.stdcode.activity2;


import android.app.Activity;
import android.app.ListActivity;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class activity1 extends Activity {

    EditText city;
    Button add,show1;
    RadioGroup choose;
    String k;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        try
        {   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //final ContentValues values = new ContentValues();
        city=(EditText)findViewById(R.id.editText1);
        add=(Button)findViewById(R.id.add);
        choose=(RadioGroup)findViewById(R.id.radio01);
        show1=(Button)findViewById(R.id.button1);
        k=city.getText().toString();
        createDatabase();
    }
        catch(Exception e)
        {

        }


show1.setOnClickListener(new View.OnClickListener() {


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        db=openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
        try{

        if(k == "CITY")
        {
            String[] result_columns=new String[]{"_id","CITY","CODE"};
            Cursor cursor = db.query(TABLE_NAME, result_columns, 
                    "CITY" +" like '%?%'", new String[]{"k"}, null, null, null);

    if(cursor != null)
    {
      while(cursor.moveToNext())
      {
        String xnewcode=cursor.getString(1);
        Toast.makeText(activity1.this, xnewcode, Toast.LENGTH_LONG).show();
      }
    }
            //db.close();
        }}
        catch(Exception e)
        {
            Toast.makeText(activity1.this,"Fault in showing " + e,Toast.LENGTH_LONG).show();

        }

    }

});
add.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent = new Intent(activity1.this,activity2.class);
        startActivity(intent);
    }
});}
    public static final String DATABASE_NAME="myDB.db";
public static final String TABLE_NAME = "citycodes";
private static final String TABLE_CREATE =
            "CREATE TABLE " + TABLE_NAME + "(_id integer primary key autoincrement, CITY text not null,CODE text not null);";

SQLiteDatabase db;
public void createDatabase() {
    db=openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
    db.execSQL(TABLE_CREATE);


    city.setOnKeyListener(new View.OnKeyListener() {


        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            //TODO Auto-generated method stub   
            db=openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
            try{

            if(k == "CITY")
            {
                String[] result_columns=new String[]{"_id","CITY","CODE"};
                Cursor cursor = db.query(TABLE_NAME, result_columns, 
                        "CITY" +"=?", new String[]{"k"}, null, null, null);

        cursor.moveToFirst();

            String xnewcode=cursor.getString(0);
            Toast.makeText(activity1.this, xnewcode, Toast.LENGTH_LONG).show();
            cursor.moveToNext();

            //if(cursor.moveToFirst()){
                //do
                //{
                    //String xnewcity=cursor.getString(0);
                     //String xnewcode=cursor.getString(1);
                        //Toast.makeText(activity1.this,xnewcity,Toast.LENGTH_LONG).show();
                    //Toast.makeText(activity1.this,xnewcode,Toast.LENGTH_LONG).show();


                    //}while(cursor.moveToNext());

            //}
            //db.close();
        }}
        catch(Exception e)
        {
            Toast.makeText(activity1.this,"Fault in showing " + e,Toast.LENGTH_LONG).show();

        }
            return true;
    }
});
    }}

This is the second activity file.. just in case u needed it.

        package com.stdcode;



//import static com.stdcode.activity1.DATABASE_NAME;
//import static com.stdcode.activity1.TABLE_NAME;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
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 activity2 extends activity1 {

    EditText newcity;
    EditText newcode;
    Button save,back;
    String city1,code1;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);

        newcity = (EditText) findViewById(R.id.EditText01);
        newcode = (EditText) findViewById(R.id.EditText02);
        back=(Button)findViewById(R.id.back01);
        save=(Button)findViewById(R.id.save01);
        back.setOnClickListener(new ClickHandler());
        save.setOnClickListener(new ClickHandler());
    }
        public class ClickHandler implements OnClickListener
        {
            public void onClick(View v)
            {
                db=openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
                try
                {
                    ContentValues newValues=new ContentValues();

                    if(v == save)
                    {
                        city1=newcity.getText().toString();
                        code1=newcode.getText().toString();
                        newValues.put("CITY", city1);
                        newValues.put("CODE", code1);
                        db.insert(TABLE_NAME, null, newValues);
                        Toast.makeText(activity2.this,"Values Inserted",Toast.LENGTH_LONG).show();

                    }
            }
                catch (Exception e)
                {
                    Toast.makeText(activity2.this,"Error " + e,Toast.LENGTH_LONG).show();
                }




back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i= new Intent(activity2.this, activity1.class);
                startActivity(i);
            }
        });
    }
}
        }

解决方案

String xnewcode=cursor.getString(0);

0 is not the good colum, should be 2.

Regards, Stéphane

这篇关于Android应用程序以检索拉链code为每个城市的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆