Android-приложение, которое получает почтовый индекс для каждого города - PullRequest
1 голос
/ 02 июня 2011

Это первый и второй файл активности программы, которую я разрабатываю ... в первом файле ... пользователь вводит город ..., который должен быть найден в базе данных и должен быть возвращен соответствующий почтовый индекс. Если город отсутствует в базе данных, пользователь может ввести город и его почтовый индекс во втором файле активности ... который работает нормально. У меня проблемы с первым файлом активности .. пожалуйста, помогите.

        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;
    }
});
    }}

Это второй файл активности ... на тот случай, если он вам нужен.

        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);
            }
        });
    }
}
        }

1 Ответ

0 голосов
/ 02 июня 2011
String xnewcode=cursor.getString(0);

0 не хороший столбец, должно быть 2.

С уважением, Stéphane

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...