Soru & Cevap

Yabancı Dil Sözlüğü , Kelime çekme Yöntemi

05.05.2017 - 12:00

Merhabalar arkadaşlar. Ben bri sözlük programı üzerinde çalışıyorum. Şimdi bu kelimeleri veritabanına eklemek hammallık olur çok fazla kelime var. Ftp sunucumdan xml dosyası halinde android programdan parse etmeyi düşündüm, ondada yabancı türkçe karışacak. Nasıl bir yöntem tavsiye edersiniz?

27 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-103767-1491764696.jpg
elfaybkeasln
05.05.2017 - 09:38

Ben Benzer bir uygulama üzerinde çalışıyorum. Firebase kullandım. Verileri key value şeklinde JSON formatıyla veritabanına aktarıyorum. 

{
"Not":"Değil",
"Also":"Ayrıca",
"Very":"Çok",
"Often":"Genellikle",
"Homever":"Evsiz",
"Too":"Çok",
"Usually":"Genellikle"

}

Notepad'te yazıp JSON formatında yukarıdaki şekilde kaydediyosun. Aşağıdaki kodlarlada veritabanından verileri çekebilirsin.

 

adverbs.java

public class Adverbs extends AppCompatActivity implements View.OnClickListener {

    TextView textViewAdverbsGelen, textViewAdverbsAnlamlari;
    Button buttonAdverbsOnceki, buttonAdverbsSonraki;
  

    ArrayList<datastructure> dataList = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_adverbs);

        new Handler().postDelayed(new Runnable() {//program çalıştığı anda çalışır
            @Override
            public void run() {
                getAllKeyValue();
            }
        }, 0);

        textViewAdverbsGelen=(TextView)findViewById(R.id.textViewAdverbsGelen);
        textViewAdverbsAnlamlari=(TextView)findViewById(R.id.textViewAdverbsAnlami);
        buttonAdverbsOnceki=(Button)findViewById(R.id.buttonAdverbsOnceki);
        buttonAdverbsSonraki=(Button)findViewById(R.id.buttonAdverbsSonraki );
        buttonAdverbsSonraki.setEnabled(false);
        buttonAdverbsOnceki.setEnabled(false);
    }
    public void getAllKeyValue() {
        /*
        proje başladığında veritabanından nesneleri çekmek için kullanılan yapı
        */
        DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference().child("adverbs");
        dbRef.addValueEventListener(new ValueEventListener() {
                                        @Override
                                        public void onDataChange(DataSnapshot dataSnapshot) {
                                            for (DataSnapshot dsp: dataSnapshot.getChildren()) {
                                                datastructure data = new datastructure();
                                                data.key = dsp.getKey();
                                                data.value = dsp.getValue().toString();
                                                dataList.add(data);

                                                // dataList.ensureCapacity(dataList.size());
                                            }
                                            buttonAdverbsSonraki.setEnabled(true);
                                            buttonAdverbsOnceki.setEnabled(true);
                                            textViewAdverbsGelen.setText(dataList.get(0).key);
                                            textViewAdverbsAnlamlari.setText(dataList.get(0).value);

                                        }
                                        @Override
                                        public void onCancelled(DatabaseError databaseError) {
                                        }
                                    });
    }
    int index = 0;
    public void sonrakikelime() {
        index++;
        textViewAdverbsGelen.setText(dataList.get(index).key);
        textViewAdverbsAnlamlari.setText(dataList.get(index).value);

    }

    public void oncekikelime() {
        --index;
        textViewAdverbsGelen.setText(dataList.get(index).key);
        textViewAdverbsAnlamlari.setText(dataList.get(index).value);

    }
    @Override
    public void onClick(View v) {
        if(v==buttonAdverbsOnceki){
            oncekikelime();
        }
        if(v==buttonAdverbsSonraki){
            sonrakikelime();
        } }   
}

Tahsin Vural
05.05.2017 - 09:07
Yani özet olarak kelimeleri json formatında çekiyoruz demi?
Tahsin Vural
05.05.2017 - 11:49
Birde verileri json formatıyla key value şeklinde veritabanına nasıl aktaracağız
murat
06.05.2017 - 11:26
evet kelimeleri yukarıdaki gibi yaparsan o key value şeklinde yapmış olur. Firebase veri tabanı key : value şeklinde çalışmaktadır. Biraz firebase veritabanına bakarsanız anlayacaksınız. Kolay gelsin iyi çalışmalr
Tahsin Vural
06.05.2017 - 02:02
Yukarıdaki kodlar , jsondaki verileri veritabanınamı ekiliyor key value şeklinde
Elif Aybike Aslan
06.05.2017 - 02:11
Evet. Ayrıyeten datastructure.java adlı bi java dosyası oluştur. public class datastructure { String key, value; } şeklinde işlemleri gerçekleştirirsen Firebaseten verileri çekebilirsin yukarıdaki kodlarla.
Tahsin Vural
06.05.2017 - 06:40
Elif hanım sizin yaptığınız gibi yaptım , firebase.google üzerinden json dosyamı import ettim . Ama dosyadaki değerlere ulaşamıyorum. Kodlar burda = https://paste.ubuntu.com/24524027/
Tahsin Vural
06.05.2017 - 06:41
Nerde hata yaptım ? Firebase sdk kurulumu tamam , sıkıntı ne ki ?
Elif Aybike Aslan
07.05.2017 - 12:42
Firebase console -> Database -> Rules kısmında read ve write özelliklerini true yaptın mı?
Tahsin Vural
07.05.2017 - 01:04
evet yaptım , ne veri ekleyebiliyorum nede çekebiliyorum