Son Forum Aktiviteleri

12
Tümünü Gör

Sqlite ile Mysql Senkronizasyonu

Merhabalar,

Aslında yapmak istediğim, uzak veritabanı sunucusundan verileri çekip listviewde göstermek. Bunu json ve bir kaç php dosyası ile yapabiliyoruz. Fakat telefon internete bağlı değilken, herhangi bir yere bağlanamayacağı için listviewin içerisi boş gözükecek. 

Yapmak istediğim ise, telefon internete bağlıyken bir buton ile verileri çektikten sonra listviewde bir sonraki veri çekimine kadar durması. Yani uzaktaki veritabanından verileri telefona indireceğim, internetim olmasa da o verileri göstereceğim, verilerin güncellenebileceğini varsayarak, internete bağlandığımda telefonda varolan verilerin silinip, güncel verilerin yüklenmesini sağlayacağım. 

Benim aklıma Mysql ile Sqlite arasında bir bağlantı kurarak senkronizasyon yapmak geldi. Belki DownloadManager kullanılarakta bir şekil yapılabilir ama öylesi daha bir karmaşık olacağını düşünüyorum. 

Sizlerin tavsiye edebileceği, ya da daha uygun olabileceğini düşündüğünüz bir yöntem var mıdır ? 

Cevaplarınız için şimdiden teşekkürler 

Searchview ve JSON

Merhabalar, JSON ile mysqlden verileri çekebiliyorum, çektiğim verileri listview'de de gösterebiliyorum. Ama searchview ile listview in içerisinde anlık arama yaptıramıyorum. Her şey normal gidiyor ama arama kısmına yazar yazmaz hata verip kapanıyor. 

Yani aslında yapmak istediğim, listviewe searchview uygulamak. Aşağıda kodlar ve hata mnesajı var.

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends Activity implements SearchView.OnQueryTextListener{
    private String jsonResult;
    private String url = "http://192.168.81.5/sql/a.php";
    private ListView listView;
    ArrayAdapter<String> adapter;
    SearchView search_view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.list_view);
        search_view = (SearchView) findViewById(R.id.search_view);
        accessWebService();


    }

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



    // Async Task to access the web
    private class JsonReadTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... params) {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(params[0]);
            try {
                HttpResponse response = httpclient.execute(httppost);
                jsonResult = inputStreamToString(
                        response.getEntity().getContent()).toString();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        private StringBuilder inputStreamToString(InputStream is) {
            String rLine = "";
            StringBuilder answer = new StringBuilder();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));

            try {
                while ((rLine = rd.readLine()) != null) {
                    answer.append(rLine);
                }
            } catch (IOException e) {
                // e.printStackTrace();
                Toast.makeText(getApplicationContext(),
                        "Error..." + e.toString(), Toast.LENGTH_LONG).show();
            }
            return answer;
        }

        @Override
        protected void onPostExecute(String result) {
            ListDrwaer();
        }
    }// end async task

    public void accessWebService() {
        JsonReadTask task = new JsonReadTask();
        // passes values for the urls string array
        task.execute(new String[]{url});
    }

    // build hash set for list view
    public void ListDrwaer() {
        List<Map<String, String>> employeeList = new ArrayList<Map<String, String>>();

        try {
            JSONObject jsonResponse = new JSONObject(jsonResult);
            JSONArray jsonMainNode = jsonResponse.optJSONArray("emp_info");

            for (int i = 0; i < jsonMainNode.length(); i++) {
                JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
                String name = jsonChildNode.optString("Name");
                String surname = jsonChildNode.optString("Surname");
                String outPut = name + " " + surname;
                employeeList.add(createEmployee("employees", outPut));
            }
        } catch (JSONException e) {
            Toast.makeText(getApplicationContext(), "Error" + e.toString(),
                    Toast.LENGTH_SHORT).show();
        }

        SimpleAdapter adapter = new SimpleAdapter(this, employeeList,
                android.R.layout.simple_list_item_1,
                new String[]{"employees"}, new int[]{android.R.id.text1});
        listView.setAdapter(adapter);
        search_view.setOnQueryTextListener(this);

    }

    private HashMap<String, String> createEmployee(String name, String surname) {
        HashMap<String, String> employeeNameNo = new HashMap<String, String>();
        employeeNameNo.put(name, surname);
        return employeeNameNo;
    }
    @Override
    public boolean onQueryTextSubmit(String query) {
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        adapter.getFilter().filter(newText);
        return false;
    }
}

 

 

Aşağıdakiler de arama yapmaya başladığımda çıkan hata mesajları 

05-23 07:45:17.905 29930-29930/com.example.alper.json E/InputEventSender: Exception dispatching finished signal.
05-23 07:45:17.905 29930-29930/com.example.alper.json E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
05-23 07:45:17.906 29930-29930/com.example.alper.json E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'android.widget.Filter android.widget.ArrayAdapter.getFilter()' on a null object reference
                                                                              at com.example.alper.json.MainActivity.onQueryTextChange(MainActivity.java:145)
                                                                              at android.widget.SearchView.onTextChanged(SearchView.java:1209)
                                                                              at android.widget.SearchView.-wrap9(SearchView.java)
                                                                              at android.widget.SearchView$9.onTextChanged(SearchView.java:1682)
                                                                              at android.widget.TextView.sendOnTextChanged(TextView.java:7991)
                                                                              at android.widget.TextView.handleTextChanged(TextView.java:8053)
                                                                              at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10157)
                                                                              at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1033)
                                                                              at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:559)
                                                                              at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
                                                                              at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:491)
                                                                              at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:223)
                                                                              at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:136)
                                                                              at android.widget.TextView.doKeyDown(TextView.java:6098)
                                                                              at android.widget.TextView.onKeyDown(TextView.java:5911)
                                                                              at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:720)
                                                                              at android.view.KeyEvent.dispatch(KeyEvent.java:2640)
                                                                              at android.view.View.dispatchKeyEvent(View.java:9234)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                              at com.android.internal.policy.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2395)
                                                                              at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1727)
                                                                              at android.app.Activity.dispatchKeyEvent(Activity.java:2725)
                                                                              at com.android.internal.policy.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2310)
                                                                              at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4127)
                                                                              at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4089)
                                                                              at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                              at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                              at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                              at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787)
                                                                              at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
                                                                              at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844)
                                                                              at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                              at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                              at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                              at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
                                                                              at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                              at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                              at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                              at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3820)
                                                                              at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3981)
                                                                              at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2253)
                                                                              at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1874)
                                                                              at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1865)
                                                                              at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2230)
                                                                          	at android.view.In
05-23 07:45:17.906 29930-29930/com.example.alper.json D/AndroidRuntime: Shutting down VM
05-23 07:45:17.907 29930-29930/com.example.alper.json E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.example.alper.json, PID: 29930
                                                                        java.lang.NullPointerException: Attempt to invoke virtual method 'android.widget.Filter android.widget.ArrayAdapter.getFilter()' on a null object reference
                                                                            at com.example.alper.json.MainActivity.onQueryTextChange(MainActivity.java:145)
                                                                            at android.widget.SearchView.onTextChanged(SearchView.java:1209)
                                                                            at android.widget.SearchView.-wrap9(SearchView.java)
                                                                            at android.widget.SearchView$9.onTextChanged(SearchView.java:1682)
                                                                            at android.widget.TextView.sendOnTextChanged(TextView.java:7991)
                                                                            at android.widget.TextView.handleTextChanged(TextView.java:8053)
                                                                            at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10157)
                                                                            at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1033)
                                                                            at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:559)
                                                                            at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
                                                                            at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:491)
                                                                            at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:223)
                                                                            at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:136)
                                                                            at android.widget.TextView.doKeyDown(TextView.java:6098)
                                                                            at android.widget.TextView.onKeyDown(TextView.java:5911)
                                                                            at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:720)
                                                                            at android.view.KeyEvent.dispatch(KeyEvent.java:2640)
                                                                            at android.view.View.dispatchKeyEvent(View.java:9234)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1640)
                                                                            at com.android.internal.policy.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2395)
                                                                            at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1727)
                                                                            at android.app.Activity.dispatchKeyEvent(Activity.java:2725)
                                                                            at com.android.internal.policy.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2310)
                                                                            at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4127)
                                                                            at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4089)
                                                                            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                            at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787)
                                                                            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
                                                                            at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844)
                                                                            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
                                                                            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                            at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3820)
                                                                            at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3981)
                                                                            at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2253)
                                                                            at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1874)
                                                                            at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1865)
                                                                        	at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInpu

 

 

Değerli fikirlerinizi bekliyorum. Aya da searchview yerine listview e başka nasıl filtre uygulayabilirim ? 

8 yıl 5 ay önce yanıtladın

Edittext içerisinde Button Kullanımı

Görsel kaldırıldı.

Resimdeki tam olarak ne istediğimi anlatmıyor olabilir. Edittext içerisinde @drawableright/resim şeklinde edittext'in sağ kısmına button ekleyebiliyoruz. Benim sormak istediğim o butonu nasıl kullanıyoruz ? Aynı resimdeki gibi karakterleri girdikten sonra çarpı işaretine basınca edittext'i sıfırlayacak, yani temizleyecek. 

Eminim basit bir kodu vardır da o kadar aramama rağmen(ya da doğru aramadığımdan ötürü) bulamadım. Yardımlarınız için şimdiden teşekkürler 

8 yıl 8 ay önce yanıtladın

Bu tasarimi nasil yapabilirim lutfen yardim(android studio)

12 Eylül 2017 tarihinde cevaplandı

Tabview ile ilgili örneklere bakabilirsin. 

Sqlite ile Mysql Senkronizasyonu

O da bir seçenek ama benim datalarım bayağı bir detaylı olacak :) 

2 Proglamlama Sorusu(ACİL)

20 Haziran 2016 tarihinde cevaplandı

istersen en baştan, python'dan da başlayabilirsin :) Bütün programlama dilleri birbirine benzer, javayı bilene c# öğrenmek kolay gelir, c# bilene java öğrenmek... 

 

Türkiye çapında geçerli olacak bir projem var

20 Haziran 2016 tarihinde cevaplandı

projenle ilgili olabileceğini düşündüğün büyük firmalara başvurabilirsin. 

[5]Android İle SQL Server nasıl cekebiliriz ?

http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/

burada detaylı anlatımı var, işine yarayacak kısımları alabilirsin.

ya da google : android php json parser, android json parser diye aratırsan istediğin sonuçları bulabilirsin.