[]
Card View İçine İkinci Bir Veri Girme Sorunu / Android-Java /TwitterClone
Merhaba ben twitter clonu yapmaya çalışıyorum.
LOgin Register Bitti.
Tiwit atıp RecyclerView ile listeliyebiliyorum.
Fakat her twittin altına bir like butonu yapmam lazım.
ŞU şekilde yaptım.
holder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sayaç ++;
holder.txt.setText(Integer.toString(sayaç));
kisiekle(holder);
}
});
Buton her tıklandığında sayaç artıyor ve txt adındaki textview içine yazıyor.
Sonra kişi ekle methoduma holder parametresi vererek şu şekilde veritabanıma tıklanma sayısını atıyorum.
public void kisiekle(final CardTasarimTutucu holder){
String url = "goldgym.pro";
final String userlike = holder.txt.getText().toString().trim();
final String usertext = holder.textViewTurkce.getText().toString().trim();
StringRequest istek = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("sus", String.valueOf(holder.getAdapterPosition()));
try{
JSONObject jsonObject = new JSONObject(response);
String succes = jsonObject.getString("success");
Log.e("sus",succes);
} catch (JSONException e){
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("like",userlike);
//params.put("id",id);
return params;
}
};
Volley.newRequestQueue(mContext).add(istek);
}
Fakat bir veri daha göndermem gerekiyor oda twitin kayıtlı olduğu id bilgisi.
Çünkü hangi twiti beyendiysen o twitin id bilgisi ile tespit edip veritabanındaki satırına yazdırmak gerekiyor.
Ben şuan id bilgisi gönderemediğim için webservisime test etmek adına elle id girdim şu şekilde;
$sql = "UPDATE tabletwo SET likebtn= $like WHERE id=451" ;
Peki like tuşuna basılan twitin veritabanındaki id bilgisini nasıl alacağım ?
Tabiki twiti çekerken id bilgisinine ekleriz.
Ben de öyle yaptım . Sql sorguma id bilgisinide ekledim ve parse ederken de id bilgisini şu şekilde MainActivity sınıfının içindeki tümKelimeler methodunun içindeki for döngüsüne ekledim.
for (int i = 0; i < kelimeler.length(); i++) {
JSONObject k = kelimeler.getJSONObject(i);
String turkce = k.getString("akis");
String id = k.getString("id");
Kelimeler kelime = new Kelimeler(turkce);
Kelimeler kelimes = new Kelimeler(id);
kelimelerListe.add(kelime); // Çekilen Twit
kelimelerListe.add(kelimes); // Çekilen Twit id si
}
adapter = new KelimelerAdapter(MainActivity.this,kelimelerListe);
rv.setAdapter(adapter);
Fakat id bilgisi ayrı bir carview içinde geliyor. Şu şekilde;
user-images.githubusercontent.com
Ayrı bir card view içinde yazdığından dolayı da ben veritabanıma ekleyemiyorum.
Aynı cardview içinde benim belirlediğim bir textview de yazarsa ben onu şu şekilde yaparak veri tabanıma gönderebilirim.
örnek textview adı = belirlenmıstxt
final String usertext = holder.belirlenmıstxt.getText().toString().trim();
Yukarıda ki şekilde yaparsan ben onu veri tabanına rahatca eklerim.
Bende 2. bir ArrayList oluşturarak yapmaya çalıştım fakat olmadı.
Yardımcı olursanız çok sevinirim 3 gündür uğraşıyorum yapamadım.
githup dosyası
github.com
LOgin Register Bitti.
Tiwit atıp RecyclerView ile listeliyebiliyorum.
Fakat her twittin altına bir like butonu yapmam lazım.
ŞU şekilde yaptım.
holder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sayaç ++;
holder.txt.setText(Integer.toString(sayaç));
kisiekle(holder);
}
});
Buton her tıklandığında sayaç artıyor ve txt adındaki textview içine yazıyor.
Sonra kişi ekle methoduma holder parametresi vererek şu şekilde veritabanıma tıklanma sayısını atıyorum.
public void kisiekle(final CardTasarimTutucu holder){
String url = "goldgym.pro";
final String userlike = holder.txt.getText().toString().trim();
final String usertext = holder.textViewTurkce.getText().toString().trim();
StringRequest istek = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("sus", String.valueOf(holder.getAdapterPosition()));
try{
JSONObject jsonObject = new JSONObject(response);
String succes = jsonObject.getString("success");
Log.e("sus",succes);
} catch (JSONException e){
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("like",userlike);
//params.put("id",id);
return params;
}
};
Volley.newRequestQueue(mContext).add(istek);
}
Fakat bir veri daha göndermem gerekiyor oda twitin kayıtlı olduğu id bilgisi.
Çünkü hangi twiti beyendiysen o twitin id bilgisi ile tespit edip veritabanındaki satırına yazdırmak gerekiyor.
Ben şuan id bilgisi gönderemediğim için webservisime test etmek adına elle id girdim şu şekilde;
$sql = "UPDATE tabletwo SET likebtn= $like WHERE id=451" ;
Peki like tuşuna basılan twitin veritabanındaki id bilgisini nasıl alacağım ?
Tabiki twiti çekerken id bilgisinine ekleriz.
Ben de öyle yaptım . Sql sorguma id bilgisinide ekledim ve parse ederken de id bilgisini şu şekilde MainActivity sınıfının içindeki tümKelimeler methodunun içindeki for döngüsüne ekledim.
for (int i = 0; i < kelimeler.length(); i++) {
JSONObject k = kelimeler.getJSONObject(i);
String turkce = k.getString("akis");
String id = k.getString("id");
Kelimeler kelime = new Kelimeler(turkce);
Kelimeler kelimes = new Kelimeler(id);
kelimelerListe.add(kelime); // Çekilen Twit
kelimelerListe.add(kelimes); // Çekilen Twit id si
}
adapter = new KelimelerAdapter(MainActivity.this,kelimelerListe);
rv.setAdapter(adapter);
Fakat id bilgisi ayrı bir carview içinde geliyor. Şu şekilde;
user-images.githubusercontent.com
Ayrı bir card view içinde yazdığından dolayı da ben veritabanıma ekleyemiyorum.
Aynı cardview içinde benim belirlediğim bir textview de yazarsa ben onu şu şekilde yaparak veri tabanıma gönderebilirim.
örnek textview adı = belirlenmıstxt
final String usertext = holder.belirlenmıstxt.getText().toString().trim();
Yukarıda ki şekilde yaparsan ben onu veri tabanına rahatca eklerim.
Bende 2. bir ArrayList oluşturarak yapmaya çalıştım fakat olmadı.
Yardımcı olursanız çok sevinirim 3 gündür uğraşıyorum yapamadım.
githup dosyası
github.com
insan bir cevap verir yahu.
- aristotelesin berberi (12.10.19 23:42:10)
1