[]
php web servisimden android java methodumu tetiklemek istiyorum ?
Merhaba bir sorum var yanıtlarsanız çok sevinirim.
Ben php web servisimden android java methodumu çalıştırmak istiyorum.
Bunu nasıl yapabilirim ?
Daha detaylı anlatmam gerekirse mysql veri tabanımdaki bulunan bir sütunda ki 1 değerimi php web servisimi kullanarak 2 yapmak istiyorum.
Bunu yaptığım anda android tarafında bu değeri çekme methodumun çalışması gerekiyor.
Bunu nasıl yapabilirim ?
Teşekkürler.
Ben php web servisimden android java methodumu çalıştırmak istiyorum.
Bunu nasıl yapabilirim ?
Daha detaylı anlatmam gerekirse mysql veri tabanımdaki bulunan bir sütunda ki 1 değerimi php web servisimi kullanarak 2 yapmak istiyorum.
Bunu yaptığım anda android tarafında bu değeri çekme methodumun çalışması gerekiyor.
Bunu nasıl yapabilirim ?
Teşekkürler.
websocket veya long polling, websocket tavsiye ederim
- nahtoderfahrung (16.07.21 13:17:37)
[]
Virtual box kurarken mevcut işletim sistemi silinir mi ?
Merhaba iyi bayramlar bir sorum var cevaplarsanız sevinirim.
BEn dual bot ile windows 10 ve ubuntu kullanıyorum. Virtual box kurmam gerekiyor.
Virtual box kurduğumda mevcut işletim sistemim silinir mi ?
BEn dual bot ile windows 10 ve ubuntu kullanıyorum. Virtual box kurmam gerekiyor.
Virtual box kurduğumda mevcut işletim sistemim silinir mi ?
iyi bayramlar. silinmez.
- sutlu nescafe (31.07.20 08:54:01)
Virtual box bir program, mevcut işletim sistemini Excel'in ne kadar silme ihtimali varsa onun da ihtimali o kadar.
İyi bayramlar.
İyi bayramlar.
- chicha_v2 (31.07.20 09:34:06)
[]
php ile bir değişken nasıl başka bir php dosyasına gönderilir ?
Merhaba login.php dosyamdaki input (edittext) 'uma girilen mail verisini akis.php adındaki php dosyama göndermem gerekiyor.
İş şöyle işliyor.
login.php ile login olan kullanıcı akis.php sayfasına yönlendiriliyor.
akis.php sayfasına login olan kullanıcı geldiğinde onun bilgilerini çekmem için inputtan girdiği mail verisini kullanmam gerekiyor.
Ben android java da bunu methoduma parametre geçirerek yapardım.
public voiid mail(mailx){
}
fakat bu işlemi php de nasıl yapacağım bilmiyorum.
sesion ile denedim fakat olmuyor.Çıkış yapıp tekrar başka başka mail ile girdiğinde eski sesion verisi geliyor.
tabiki sesion_destroy kullanıyorum.
Teşekkürler.
İş şöyle işliyor.
login.php ile login olan kullanıcı akis.php sayfasına yönlendiriliyor.
akis.php sayfasına login olan kullanıcı geldiğinde onun bilgilerini çekmem için inputtan girdiği mail verisini kullanmam gerekiyor.
Ben android java da bunu methoduma parametre geçirerek yapardım.
public voiid mail(mailx){
}
fakat bu işlemi php de nasıl yapacağım bilmiyorum.
sesion ile denedim fakat olmuyor.Çıkış yapıp tekrar başka başka mail ile girdiğinde eski sesion verisi geliyor.
tabiki sesion_destroy kullanıyorum.
Teşekkürler.
Yanlış anlamadıysam super global kullanman gerekiyor. Normalde $_GET veya $_POST ile yapılır bu tür işlemler
www.w3schools.com
www.w3schools.com
- ejderha kuyrugunun ucunda yanan ates (30.05.20 13:42:45)
login.php'deki form'da hangi method kullanılıyorsa oradan alıyorsun,
mesela post kullandıysan,
<form method="post" .....">
<input name="username" type="text">
</form>
gibi,
akis.php tarafında $_POST["username"] olarak alıyorsun.
mesela post kullandıysan,
<form method="post" .....">
<input name="username" type="text">
</form>
gibi,
akis.php tarafında $_POST["username"] olarak alıyorsun.
- aziz dostum jack (30.05.20 13:44:21)
2-3 yöntem var.
en kolayı session'dir.
session_start(); //yaz session başlat. Değişkeni kullanacağın her sayfa başında 1 kere yazman lazım.
$degisken1 = 'deneme';
$_SESSION['degisken1'] = $degisken1 ;
$_SESSION['degisken2'] = $degisken2 ;
// Öteki sayfaya gel. tam tersini yap
session_start();
$yenidegisken1 = $_SESSION['degisken1'] ;
echo $yenidegisken1 ;$yenidegisken1 'in içeriği deneme olacak
Diğer yöntemler,
-Form içinde gönderebilirsin.
-Static olarak tanımlayabilirsin.
-Yada www.php.net burdaki gibi yapabilirsin. Ama en kolayı , session'dur.
Kafana takılan birşey olursa yaz.
en kolayı session'dir.
session_start(); //yaz session başlat. Değişkeni kullanacağın her sayfa başında 1 kere yazman lazım.
$degisken1 = 'deneme';
$_SESSION['degisken1'] = $degisken1 ;
$_SESSION['degisken2'] = $degisken2 ;
// Öteki sayfaya gel. tam tersini yap
session_start();
$yenidegisken1 = $_SESSION['degisken1'] ;
echo $yenidegisken1 ;$yenidegisken1 'in içeriği deneme olacak
Diğer yöntemler,
-Form içinde gönderebilirsin.
-Static olarak tanımlayabilirsin.
-Yada www.php.net burdaki gibi yapabilirsin. Ama en kolayı , session'dur.
Kafana takılan birşey olursa yaz.
- ycaycayca (30.05.20 14:33:53)
Merhaba cevaplarınız için teşekkür ediyorum.
@ejderha kuyrugunun ucunda yanan ates
@biseysorcaktim
@aziz dostum jack
@ycaycayca
ben pass yöntemi ile geçirdim.
header("Location:/akis.php?username=$mailx");
Mutlu ve sağlıklı günler.
Teşekkürler.
@ejderha kuyrugunun ucunda yanan ates
@biseysorcaktim
@aziz dostum jack
@ycaycayca
ben pass yöntemi ile geçirdim.
header("Location:/akis.php?username=$mailx");
Mutlu ve sağlıklı günler.
Teşekkürler.
- aristotelesin berberi (30.05.20 15:42:53)
Çözebilmene sevindim. Sorun yaşarsam yavuz.akan@gmail.com'a mail atabilirsin .
- ycaycayca (31.05.20 11:05:25)
[]
@NonNull nedir ? Android Java
Merhaba türkçe kaynak bulamadım ingilizce kaynakları araştırdım biraz bilgi sahibi oldum fakat tam nasıl uygulayabileceğimi bilemiyorum.
Anladığım.
NullPointerException hatasını almamak için kullanılıyor diye algıladım. Eğer null ise bir değer ata gibi bir işlevi var galiba.
Yardımcı olursanız çok sevinirim. Nasıl kullanılacağını anladıktan sonra kendi blog'umda da(www.oguzhangumus.net) başkaları faydalansın diye yazacağım.
Sağlıklı Mutlu Günler.
Anladığım.
NullPointerException hatasını almamak için kullanılıyor diye algıladım. Eğer null ise bir değer ata gibi bir işlevi var galiba.
Yardımcı olursanız çok sevinirim. Nasıl kullanılacağını anladıktan sonra kendi blog'umda da(www.oguzhangumus.net) başkaları faydalansın diye yazacağım.
Sağlıklı Mutlu Günler.
Bu Java'da core bi özellik değil sanırım, daha çok kütüphaneler kullanıyor. Lombok kullanıyordu mesela.
Kısaca o değişkene null değer atayamazsın demek. Örneğin bir fonksiyonun var, 1 tane parametre alıyor, normalde istersen fonksiyon(null) diye çağırabilirsin onu. Ama başına @NonNull koyarsan bunu yapamıyorsun. Aynı şekilde diyelim bir objeyi db'ye yazacaksın ya da print edeceksin, bu annotation'ı kullanarak belli değerler için null yazılmasını engelleyebilirsin.
Nasıl çalışıyor? İşte kullandığın kütüphane ya da ide bu ifadeyi görünce statik analiz yapıyordur, herhangi bir yerde null atamaya çalışıyorsan hata veriyordur. Tam nasıl çalıştığını bilmiyorum arkaplanda ama genel mantık bu.
Neye fayda sağlıyor? Her yere if != null yazmakla uğraşmamana. Neden bunu yazmayalım? Çünkü kısa kodu okuması daha kolay (tek kriter bu değil tabi). Okumanın kolay olması niye umrumuzda olsun? Çünkü developler'lar genelde yazdıklarından çok daha fazla süreyi okuyarak geçiriyorlar, ya da geçirmeleri gerekiyor.
Not: 1 seneden fazladır java yazmıyorum. Aktif java yazan biri belki daha iyi bir cevap verir.
Kısaca o değişkene null değer atayamazsın demek. Örneğin bir fonksiyonun var, 1 tane parametre alıyor, normalde istersen fonksiyon(null) diye çağırabilirsin onu. Ama başına @NonNull koyarsan bunu yapamıyorsun. Aynı şekilde diyelim bir objeyi db'ye yazacaksın ya da print edeceksin, bu annotation'ı kullanarak belli değerler için null yazılmasını engelleyebilirsin.
Nasıl çalışıyor? İşte kullandığın kütüphane ya da ide bu ifadeyi görünce statik analiz yapıyordur, herhangi bir yerde null atamaya çalışıyorsan hata veriyordur. Tam nasıl çalıştığını bilmiyorum arkaplanda ama genel mantık bu.
Neye fayda sağlıyor? Her yere if != null yazmakla uğraşmamana. Neden bunu yazmayalım? Çünkü kısa kodu okuması daha kolay (tek kriter bu değil tabi). Okumanın kolay olması niye umrumuzda olsun? Çünkü developler'lar genelde yazdıklarından çok daha fazla süreyi okuyarak geçiriyorlar, ya da geçirmeleri gerekiyor.
Not: 1 seneden fazladır java yazmıyorum. Aktif java yazan biri belki daha iyi bir cevap verir.
- plutongezegendegilmi (22.03.20 20:19:43 ~ 20:20:50)
@plutongezegendegilmi Teşekkürler.
- aristotelesin berberi (23.03.20 20:06:17)
[]
Ambalaj Tasarımı Matba Kısmı Nasıl Çıktı Alınır ?
Merhaba bir konuda yardımınıza ihtiyacım var. Yardım ederseniz çok sevinirim çünkü nasıl yapacağımı hiç bilmiyorum.
Benden ambalaj tasarımı yapmamı istediler elimde bir pdf var ölçü bilgileri bu pdf de mevcut.
Ben bu ölçülere göre tasarımı corel de yaparım fakat daha önce hiç ambalaj tasarımı yapmadım.
Matbaa kısmı nasıl işliyor bilen var mıdır ?
Misal adamlar bunu direk basım sonra kesiyorlar mı ?
Peki kesim işlemini kalıplarla mı yapıyorlar ?
Eğer kalıplarla yapıyorlar ise bu kalıpları nasıl hazırlıyorlar ben onlara pdf olarak versem rahatca çalışabilirlr mi ?
Elimdeki pdf corel de açtım.
user-images.githubusercontent.com
Beni biraz aydınlatabilirmisiniz ? Yardımcı olursanız çok sevinirim.
Patrona yapamadım demek istemiyorum
Benden ambalaj tasarımı yapmamı istediler elimde bir pdf var ölçü bilgileri bu pdf de mevcut.
Ben bu ölçülere göre tasarımı corel de yaparım fakat daha önce hiç ambalaj tasarımı yapmadım.
Matbaa kısmı nasıl işliyor bilen var mıdır ?
Misal adamlar bunu direk basım sonra kesiyorlar mı ?
Peki kesim işlemini kalıplarla mı yapıyorlar ?
Eğer kalıplarla yapıyorlar ise bu kalıpları nasıl hazırlıyorlar ben onlara pdf olarak versem rahatca çalışabilirlr mi ?
Elimdeki pdf corel de açtım.
user-images.githubusercontent.com
Beni biraz aydınlatabilirmisiniz ? Yardımcı olursanız çok sevinirim.
Patrona yapamadım demek istemiyorum
tasarıma özel bıçak hazırlanıyor. aynı pdf'teki gibi kesimleri kırmızı, kırımları yeşil yaparsanız matbaa halleder.
- cern de cayci olmak vardi (19.03.20 20:00:33 ~ 20:04:45)
@cern de cayci olmak vardi merhaba matbaa'ya pdf olarak versek olur mu ? Birde ölçülerin yazmasına gerek varmı ? Zaten gerçek ölçülerde olacağı için ölçüleri yazmasak olur mu ?
Matbaa kalımlarla mı yapıyor acaba ?
Matbaa kalımlarla mı yapıyor acaba ?
- aristotelesin berberi (19.03.20 20:17:37)
buna özel bıçak yapılacak. baskıdan geçtikten sonra kesim yapılıyor. pdf atsan anlarlar. 1000 lira falan bıçak masrafı çıkar buna. belki de daha fazla.
- mattiadestro (19.03.20 21:24:32)
Seri uretim icin kesim kalibi yapilir (bicak). Basildiktan sonra bu kalipla kesilir.
Ama kesimde ortsya ne cikacak diyr görmek icin numune cikartilabiliyor, bicak yapılmak zorunda degil.
Pdf vektorel ve gercek ölçülerde ise gerek yok, matbaa halleder. Kesimleri ve kirimlari belirtmesen de hallederler, neyin ne olduğunu biliyor ambalajci matbaalar. Kalibi matbaa yaptırıyor, senin kalipla isin yok. Kafana takilan bir sey olursa sorabilirsin dm atip.
Sen bunlardan birkacyuz ya sa birkac bin tane urettirecek misij yoksa birer numune mi almak istiyorsun?
Ama kesimde ortsya ne cikacak diyr görmek icin numune cikartilabiliyor, bicak yapılmak zorunda degil.
Pdf vektorel ve gercek ölçülerde ise gerek yok, matbaa halleder. Kesimleri ve kirimlari belirtmesen de hallederler, neyin ne olduğunu biliyor ambalajci matbaalar. Kalibi matbaa yaptırıyor, senin kalipla isin yok. Kafana takilan bir sey olursa sorabilirsin dm atip.
Sen bunlardan birkacyuz ya sa birkac bin tane urettirecek misij yoksa birer numune mi almak istiyorsun?
- stavro (19.03.20 22:25:40)
Teşekkürler Cevaplarınız için.
@stavro Merhaba seri üretilecek.
@stavro Merhaba seri üretilecek.
- aristotelesin berberi (22.03.20 18:15:06)
[]
Android Java Map Api Lokasyon Sorunu ?
Merhaba uygulamam açıldığında harita geliyor ben haritada telefonun konumu görülsün istiyorum fakat yapmadım.
Ben buttona tıklanınca konumu alabilen bir kod yazdım ama onu uygulama ilk açıldığında çalıştıramıyorum.
Ne yapmalıyım onMapReady methodunun içine el ile enlem boylam girildiğinde oluyor fakat telefonun konumunu onMapReady içine alamıyorum.
`public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
FusedLocationProviderClient fusedLocationProviderClient;
private static final int REQUEST_CODE = 101;
private int izinKontrol;
private Button btn;
private TextView textone,texttwo;
private String konumSaglayici = "gps";
private LocationManager locationManager;
private GoogleMap mMap;
private double d, e;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ff();
}
});
Log.e("ccc", "ccc");
textone = findViewById(R.id.r);
texttwo = findViewById(R.id.t);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
public void ff(){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(izinKontrol != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MapsActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},100);
}else{
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 100){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(getApplicationContext(), "Kayıt Başarılı", Toast.LENGTH_LONG).show();
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}else{
Toast.makeText(getApplicationContext(), "olumsuz", Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onLocationChanged(Location location) {
double enlem = location.getLatitude();
double boylam = location.getLongitude();
textone.setText("Boylam :"+enlem);
texttwo.setText("Enlem :"+boylam);
LatLng sydneya = new LatLng(enlem, boylam);
mMap.addMarker(new MarkerOptions().position(sydneya).title("QAROCOsss"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydneya));
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
mMap.animateCamera(CameraUpdateFactory.zoomTo(16.0f));
}
}
`
Ben buttona tıklanınca konumu alabilen bir kod yazdım ama onu uygulama ilk açıldığında çalıştıramıyorum.
Ne yapmalıyım onMapReady methodunun içine el ile enlem boylam girildiğinde oluyor fakat telefonun konumunu onMapReady içine alamıyorum.
`public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
FusedLocationProviderClient fusedLocationProviderClient;
private static final int REQUEST_CODE = 101;
private int izinKontrol;
private Button btn;
private TextView textone,texttwo;
private String konumSaglayici = "gps";
private LocationManager locationManager;
private GoogleMap mMap;
private double d, e;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ff();
}
});
Log.e("ccc", "ccc");
textone = findViewById(R.id.r);
texttwo = findViewById(R.id.t);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
public void ff(){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(izinKontrol != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MapsActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},100);
}else{
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 100){
izinKontrol = ContextCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(getApplicationContext(), "Kayıt Başarılı", Toast.LENGTH_LONG).show();
Location konum = locationManager.getLastKnownLocation(konumSaglayici);
if(konum!=null){
onLocationChanged(konum);
}else{
textone.setText("Konum Aktif DEĞİL :");
texttwo.setText("Konum Aktif DEĞİL :");
}
}else{
Toast.makeText(getApplicationContext(), "olumsuz", Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onLocationChanged(Location location) {
double enlem = location.getLatitude();
double boylam = location.getLongitude();
textone.setText("Boylam :"+enlem);
texttwo.setText("Enlem :"+boylam);
LatLng sydneya = new LatLng(enlem, boylam);
mMap.addMarker(new MarkerOptions().position(sydneya).title("QAROCOsss"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydneya));
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
mMap.animateCamera(CameraUpdateFactory.zoomTo(16.0f));
}
}
`
Map kullaniyorsan, mevcut konumu LocationServices'ten almana gerek yok. hatta yapmamalisin. GoogleMap bunu senin yerine herhangi bir izin istemeden yapiyor zaten. GoogleMap'i ilk initialize ederken map.setMyLocationEnabled() methodunu kullanarak, mevcut konumunu haritada gosterebilirsin.
- crucio (02.01.20 13:38:20 ~ 13:39:09)
Merhaba efendim yapamadım nasıl yapacağımı anlatırmısın kısaca lütfen ?
onMapReady methodunun içine
mMap.setMyLocationEnabled(true);
şeklinde koydum.Fakat olmadı.
onMapReady methodunun içine
mMap.setMyLocationEnabled(true);
şeklinde koydum.Fakat olmadı.
- aristotelesin berberi (02.01.20 16:19:50)
[]
Android Uygulamalar İçin Web Servis olarak Laravel Kullanışlımıdır ?
Merhaba ben bir twitter clonu yapmaya çalışıyorum.
WebServis OLarak php ve mysql kullanıyorum.
Fakat android den post ile gelen verimim sql sorgusunda parametre olarak kullanamadım.
misal
$id = $_POST["id"];
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='.$id.'");
$statement->execute();
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
//$json = json_encode($array);
$result["employees"] = $array;
echo json_encode($result);
yukarıda ki gibi post ile gelen veriyi sql sorgusunda kullanamıyorum boş görünüyor.
BEnde laravel ile webservisimi yazmayı düşünüyorum fakat laravel öğrenmeye başlamadan laravel bu iş için uygunmudur bilen developerlara danışmak istedim.
Teşekkürler.
WebServis OLarak php ve mysql kullanıyorum.
Fakat android den post ile gelen verimim sql sorgusunda parametre olarak kullanamadım.
misal
$id = $_POST["id"];
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='.$id.'");
$statement->execute();
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
//$json = json_encode($array);
$result["employees"] = $array;
echo json_encode($result);
yukarıda ki gibi post ile gelen veriyi sql sorgusunda kullanamıyorum boş görünüyor.
BEnde laravel ile webservisimi yazmayı düşünüyorum fakat laravel öğrenmeye başlamadan laravel bu iş için uygunmudur bilen developerlara danışmak istedim.
Teşekkürler.
boş gelen nedir, $id mi boş geliyor? satır satır debug ettiniz mi nerede problem var diye.
önce $id'ye bakın, sonra sorguya.
önce $id'ye bakın, sonra sorguya.
- aziz dostum jack (04.11.19 16:41:34 ~ 16:42:06)
Merhaba @aziz dostum jack
Sorunu bulamadım.
aşağıda php dosyamı paylaşıyorum.
post ile id webservisime geliyor sonra veritabanına gönderiyorum kayıt oluyor.
Yani id geliyor ve dolu.
Sonra id ile sql sorgusu yapıyorum fakat boş görünüyor.
2 gündür uğraşıyorum fakat çözüm bulamadım.
sorguda hata yok çünkü aşağıdaki gibi id bilgisini girdiğimde json çıktısı alabiliyorum.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='529'");
Yardımcı olursan çok sevinirim. stackoverflow da da sordum cevap alamadım.
github.com
Sorunu bulamadım.
aşağıda php dosyamı paylaşıyorum.
post ile id webservisime geliyor sonra veritabanına gönderiyorum kayıt oluyor.
Yani id geliyor ve dolu.
Sonra id ile sql sorgusu yapıyorum fakat boş görünüyor.
2 gündür uğraşıyorum fakat çözüm bulamadım.
sorguda hata yok çünkü aşağıdaki gibi id bilgisini girdiğimde json çıktısı alabiliyorum.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='529'");
Yardımcı olursan çok sevinirim. stackoverflow da da sordum cevap alamadım.
github.com
- aristotelesin berberi (04.11.19 16:52:37)
elinle id yazınca geliyorsa,
$id = $_POST["id"];
bu satırda problem vardır, android'den post method ile çağırdığına emin misin?
android'den bu servisi nasıl çağırdığını gösterirsen ona bakalım.
$id = $_POST["id"];
bu satırda problem vardır, android'den post method ile çağırdığına emin misin?
android'den bu servisi nasıl çağırdığını gösterirsen ona bakalım.
- aziz dostum jack (04.11.19 16:56:52 ~ 17:00:06)
if($id != ""){
$sql = "INSERT INTO tablethree (name, twitid )
VALUES ('$extra', '$id')" ;
// use exec() because no results are returned
$conn->exec($sql);
}
@aziz dostum jack
Yukarıda kod ile, gelen id bilgisini veritabanıma kayıt ediyorum.
Bu kayıt işlemi verinin geldiğini kanıtlıyor.
Sonra aynı id bilgisi ile sql sorgusu yaptığımda boş görünüyor.
$sql = "INSERT INTO tablethree (name, twitid )
VALUES ('$extra', '$id')" ;
// use exec() because no results are returned
$conn->exec($sql);
}
@aziz dostum jack
Yukarıda kod ile, gelen id bilgisini veritabanıma kayıt ediyorum.
Bu kayıt işlemi verinin geldiğini kanıtlıyor.
Sonra aynı id bilgisi ile sql sorgusu yaptığımda boş görünüyor.
- aristotelesin berberi (04.11.19 17:01:38)
o zaman select yaptığın yeri parametreli olarak dene,
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid =:id");
$statement->execute(['id' => $id]);
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid =:id");
$statement->execute(['id' => $id]);
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
- aziz dostum jack (04.11.19 17:04:55)
@aziz dostum jack
Heyecanlandım olur mu diye ama yine boş çıktı.
{"employees":[]}
Php post ile gelen veiriyi get ile gönderemiyor mu ?
Aşağıdaki gibi yaptığımda json çıktısı elde edebiliyorum.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='529'");
Heyecanlandım olur mu diye ama yine boş çıktı.
{"employees":[]}
Php post ile gelen veiriyi get ile gönderemiyor mu ?
Aşağıdaki gibi yaptığımda json çıktısı elde edebiliyorum.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='529'");
- aristotelesin berberi (04.11.19 17:15:53)
gelen ve sonuç (gönderilen) birbirinden bağımsız post'la veya get ile data göndermenin sonuca etkisi yok.
burada problem şu ki $id geldiğine eminim diyorsun fakat o $id'yi select'e sokunca çalışmıyor diyorsun.
o zaman $id ile gelen veride problem var. gördüğüm kadarıyla veritabanınd id kolonu varchar tutuyorsun herhalde, belki sonunda bir boşluk filan vardır senin göremediğin.
insert ettiğinde de çalışıyordur ama boşluk olup olmadığını göremiyorsundur.
bunu anlayabilmek için,
$id = 529 deyip bir önceki cevabımda verdiğim sorgunun çalışıp çalışmadığını kontrol edebilirsin.
eğer çalışıyorsa $_post ile gelen veride problem var demektir.
ya da insert ettiğin tabloya gidip bak bakalım son eklenen twitid'nin sonunda veya başında herhangi bir boşluk var mı?
burada problem şu ki $id geldiğine eminim diyorsun fakat o $id'yi select'e sokunca çalışmıyor diyorsun.
o zaman $id ile gelen veride problem var. gördüğüm kadarıyla veritabanınd id kolonu varchar tutuyorsun herhalde, belki sonunda bir boşluk filan vardır senin göremediğin.
insert ettiğinde de çalışıyordur ama boşluk olup olmadığını göremiyorsundur.
bunu anlayabilmek için,
$id = 529 deyip bir önceki cevabımda verdiğim sorgunun çalışıp çalışmadığını kontrol edebilirsin.
eğer çalışıyorsa $_post ile gelen veride problem var demektir.
ya da insert ettiğin tabloya gidip bak bakalım son eklenen twitid'nin sonunda veya başında herhangi bir boşluk var mı?
- aziz dostum jack (04.11.19 17:24:56 ~ 17:25:49)
@aziz dostum jack
post ile gelen id string türünde , bu verinin kayıt olduğu sütun integer o yüzden bende gelen veriyi integere çevirdim veritabanına kayıt oldu fakat sql sorgum yine boş geldi.
$sayi = (int) $id;
YUkarıdaki şekilde integer yaptım ve id olan yerleri sayi değişkenimle değiştirdim.
ikinci söylediğini gelelim
dediğin şeyi daha önce yaptığımı söylemiştim.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='529'");
yukarıdaki şekilde sql sorgum çalışıyor ve json çıktısı alabiliyorum.
Peki aşağıdaki sql sorgusu neden çalışmıyor.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='.$id.'");
1 neden id değişkeni boş olabilir.
cevap: id değişkeni boş değil çünkü veri tabanına kayıt oluyor ama sql sorgusunda işlevsiz oluyor.
2. Neden sql sorgusu hatalı olabilir.
Cevap bunu test etmek için WHERE twitid ='529' yaptığımnda sorgu çalışıyor ve json çıktısı alınabiliyor.
3. Neden gelen id eğer string ise ve kayıt olduğu tablo da integer ise veri gelmeyebilir.
Cevap gelen string türündeki id değişkenini integer çevirim denedim fakat durum değişmedi.
Şİmdi soruyorum başka neden varmı ?
post ile gelen id string türünde , bu verinin kayıt olduğu sütun integer o yüzden bende gelen veriyi integere çevirdim veritabanına kayıt oldu fakat sql sorgum yine boş geldi.
$sayi = (int) $id;
YUkarıdaki şekilde integer yaptım ve id olan yerleri sayi değişkenimle değiştirdim.
ikinci söylediğini gelelim
dediğin şeyi daha önce yaptığımı söylemiştim.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='529'");
yukarıdaki şekilde sql sorgum çalışıyor ve json çıktısı alabiliyorum.
Peki aşağıdaki sql sorgusu neden çalışmıyor.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='.$id.'");
1 neden id değişkeni boş olabilir.
cevap: id değişkeni boş değil çünkü veri tabanına kayıt oluyor ama sql sorgusunda işlevsiz oluyor.
2. Neden sql sorgusu hatalı olabilir.
Cevap bunu test etmek için WHERE twitid ='529' yaptığımnda sorgu çalışıyor ve json çıktısı alınabiliyor.
3. Neden gelen id eğer string ise ve kayıt olduğu tablo da integer ise veri gelmeyebilir.
Cevap gelen string türündeki id değişkenini integer çevirim denedim fakat durum değişmedi.
Şİmdi soruyorum başka neden varmı ?
- aristotelesin berberi (04.11.19 18:12:58)
bir kere şimdi farkettim senin o kullandığın sql sorgusundaki nokta ile string toplama olayı zaten yanlış,
noktasız kullanman gerekiyor, noktalı kullandığında sorgu stringi şu hale geliyor,
imgbbb.com
bir de bu olay sql injection'a açık böyle kullanma, benim dediğimi kullan.
ya da ikinci yöntem,
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid = :id");
$statement->bindParam( ":id", $id, PDO::PARAM_INT);
$statement->execute();
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
diğer söylediklerin doğru evet bu dünyanın en stadart yapısı, veri alıp, sorgu çekme, mutlaka bir yerlerde bizim de göremediğimiz bir hata yapıyorsundur.
noktasız kullanman gerekiyor, noktalı kullandığında sorgu stringi şu hale geliyor,
imgbbb.com
bir de bu olay sql injection'a açık böyle kullanma, benim dediğimi kullan.
ya da ikinci yöntem,
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid = :id");
$statement->bindParam( ":id", $id, PDO::PARAM_INT);
$statement->execute();
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
diğer söylediklerin doğru evet bu dünyanın en stadart yapısı, veri alıp, sorgu çekme, mutlaka bir yerlerde bizim de göremediğimiz bir hata yapıyorsundur.
- aziz dostum jack (04.11.19 20:19:47 ~ 20:25:12)
sandbox.onlinephpfunctions.com
bir tane de örnek hazırladım. execute diyerek sonuçları görebilirsin.
bir tane de örnek hazırladım. execute diyerek sonuçları görebilirsin.
- aziz dostum jack (04.11.19 20:34:25)
@aziz dostum jack aziz dostum sorunu buldum sql sorgusunda değil hata android tarafında şöyleki;
ben android de veri gönderiyorum fakat çekmeyi başka aktivitiy de yapıyorum fakat böyle olmamalı çünkü benim çekeceğim veri göndereceğim veri ile çekilcek o yüzden ben veri gönderdiğimde dönen cevabı aynı anda almalıyım.
bunu da çöyle fark ettim html form oluşturum veri gönderdim sonra sql sorgusu yaptım oldu alıp vermenin aynı anda olması gerektiğini de bunu yapınca fark ettim. Şimdi çok yordum kendimi ama yarın yapacağım.
Yardımların için çok teşekkür ediyorum sanada zahmet verdim.
beni twitterdan takip et lütfen iyi akşamlar.
twitter @mezbjen
ben android de veri gönderiyorum fakat çekmeyi başka aktivitiy de yapıyorum fakat böyle olmamalı çünkü benim çekeceğim veri göndereceğim veri ile çekilcek o yüzden ben veri gönderdiğimde dönen cevabı aynı anda almalıyım.
bunu da çöyle fark ettim html form oluşturum veri gönderdim sonra sql sorgusu yaptım oldu alıp vermenin aynı anda olması gerektiğini de bunu yapınca fark ettim. Şimdi çok yordum kendimi ama yarın yapacağım.
Yardımların için çok teşekkür ediyorum sanada zahmet verdim.
beni twitterdan takip et lütfen iyi akşamlar.
twitter @mezbjen
- aristotelesin berberi (04.11.19 21:22:06)
[]
Post ile Android den gelen değişken Sql sorgusunda nasıl kullanılır ? php
Merhaba lütfen yardım edin sorunu çözemiyorum. !!
Android den veri gönderiyorum webservisime,
sonra web servisime gelen veriler ile 2 tane işlem yapmak istiyorum.
1.İşlem gelen veriyi mysql veri tabanıma kaydetmek.
2. İşlem gelen veri ile veri çekmek ve json olarak almak.
birinci işlem de sorun yok veriler veri tabanıma kaydediliyor.
ikinci işlem de sorun var null oluyor.
github.com
Kodlarım yukarı veriyorum.
Sorun android tarafında değil çünkü veri geliyor ve veri tabanına kayıt oluyor.
Fakat ben
$ extra = $ _POST [ " txtkim " ];
$ id = $ _POST [ " id " ];
"$ id " bu değişkenimi kullanmak istediğimde boş görünüyor ve boş değil anlayamadım cevaplarsanız çok sevinirim 4 saat dir uğraşıyorum fakat düzeltemedim.
bu soruna benzer bir paylaşım buldum fakat cevap verilememiş.
www.sitepoint.com
Android den veri gönderiyorum webservisime,
sonra web servisime gelen veriler ile 2 tane işlem yapmak istiyorum.
1.İşlem gelen veriyi mysql veri tabanıma kaydetmek.
2. İşlem gelen veri ile veri çekmek ve json olarak almak.
birinci işlem de sorun yok veriler veri tabanıma kaydediliyor.
ikinci işlem de sorun var null oluyor.
github.com
Kodlarım yukarı veriyorum.
Sorun android tarafında değil çünkü veri geliyor ve veri tabanına kayıt oluyor.
Fakat ben
$ extra = $ _POST [ " txtkim " ];
$ id = $ _POST [ " id " ];
"$ id " bu değişkenimi kullanmak istediğimde boş görünüyor ve boş değil anlayamadım cevaplarsanız çok sevinirim 4 saat dir uğraşıyorum fakat düzeltemedim.
bu soruna benzer bir paylaşım buldum fakat cevap verilememiş.
www.sitepoint.com
16. satıra
var_dump($_POST["id"]);
yazınca ne geliyor, ayrıca değişkenler niye tırnak içinde
$_SESSION['extra'] = '$extra';
burda $extra değişkeninin değeri değil direk "$extra" olduğu gibi atanıyor değişkene
var_dump($_POST["id"]);
yazınca ne geliyor, ayrıca değişkenler niye tırnak içinde
$_SESSION['extra'] = '$extra';
burda $extra değişkeninin değeri değil direk "$extra" olduğu gibi atanıyor değişkene
- nahtoderfahrung (02.11.19 20:29:18)
Merhaba @nahtoderfahrung cevabın için teşekkür ediyorum. Fakat önerilerini denememe rağmen sorun devam etmekte.
Başka bir çözüm yolu biliyormusun ?
var_dump kontrolünü önerin üzerine aşağıdaki gibi denedim fakat null oldu.
$results["employeess"] = var_dump($id);
Session da tırnak hatamı düzelttim cevap aşağıdaki gibi.
{"employeesextra":null}{"employees":[]}
Sorun devam ediyor.
Birde sorun sql sorgusunda değil bunu şöyle kanıtlayabiliyorum.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='.$id.'");
Yukarıdaki sorgumu aşağıdaki şekilde değiştirdiğimde json verisi alabiliyorum.
WHERE twitid ='523'
Her mantıklı insan sorunun gelen $id değişkeninin boş olduğundan kaynaklandığını söyler,
bende böyle düşündüm çünkü $id boş görünüyor
fakat boş olmadığını aşağıdaki işlem kanıtlıyor.
if($id != ""){
$sql = "INSERT INTO tablethree (name, twitid )
VALUES ('$extra', '$id')" ;
// use exec() because no results are returned
$conn->exec($sql);
}
yukarıdaki işlem çalışıyor ve veritabanına veri kayıt oluyor.
Buradan biz verinin webservise geldiğini ve webservisten veritabanına kayıtedildiğini anlıyoruz.
Fakat o zaman gelen $id verisini biz nednen kullanamıyoruz.
$_SESSION olarak kaydedilse bile çalışmıyor.
Çünkü boş görünüyor fakat boş değil.
Anlamak çok zor.
Başka bir çözüm yolu biliyormusun ?
var_dump kontrolünü önerin üzerine aşağıdaki gibi denedim fakat null oldu.
$results["employeess"] = var_dump($id);
Session da tırnak hatamı düzelttim cevap aşağıdaki gibi.
{"employeesextra":null}{"employees":[]}
Sorun devam ediyor.
Birde sorun sql sorgusunda değil bunu şöyle kanıtlayabiliyorum.
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='.$id.'");
Yukarıdaki sorgumu aşağıdaki şekilde değiştirdiğimde json verisi alabiliyorum.
WHERE twitid ='523'
Her mantıklı insan sorunun gelen $id değişkeninin boş olduğundan kaynaklandığını söyler,
bende böyle düşündüm çünkü $id boş görünüyor
fakat boş olmadığını aşağıdaki işlem kanıtlıyor.
if($id != ""){
$sql = "INSERT INTO tablethree (name, twitid )
VALUES ('$extra', '$id')" ;
// use exec() because no results are returned
$conn->exec($sql);
}
yukarıdaki işlem çalışıyor ve veritabanına veri kayıt oluyor.
Buradan biz verinin webservise geldiğini ve webservisten veritabanına kayıtedildiğini anlıyoruz.
Fakat o zaman gelen $id verisini biz nednen kullanamıyoruz.
$_SESSION olarak kaydedilse bile çalışmıyor.
Çünkü boş görünüyor fakat boş değil.
Anlamak çok zor.
- aristotelesin berberi (02.11.19 20:59:58 ~ 21:11:28)
benim dediğim şeyi yapmamışsın ki
- nahtoderfahrung (02.11.19 21:22:34)
@nahtoderfahrung Tekrar merhaba;
var_dump($_POST["id"]);
yukarıdakini diyorsan aşağıdaki gibi yaptım fakat bu sefer veritabanına veri gitmedi.
$id = var_dump($_POST["id"]);
var_dump($_POST["id"]);
yukarıdakini diyorsan aşağıdaki gibi yaptım fakat bu sefer veritabanına veri gitmedi.
$id = var_dump($_POST["id"]);
- aristotelesin berberi (02.11.19 21:26:10)
Noktaları kaldırıp deneyebilir misin? Aşağıdaki gibi:
WHERE twitid ='$id'
WHERE twitid ='$id'
- mya (02.11.19 23:42:20)
Merhaba @mya cevabın için teşekkür ediyorum,
fakat önerini ben daha çnce denemiştim tekrar denedim sonuç değişmedi.
Başka çözüm önerisi sunmak istermisin ?
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='$id'");
yukarıdaki gibi denedim fakat yine json çıktım aşağıdaki gibi boş görünüyor.
{"employeesextra":null}{"employees":[]}
employeesextra -> bu ifadeyi ben test için yapmıştım dikkate almayınız.
fakat önerini ben daha çnce denemiştim tekrar denedim sonuç değişmedi.
Başka çözüm önerisi sunmak istermisin ?
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='$id'");
yukarıdaki gibi denedim fakat yine json çıktım aşağıdaki gibi boş görünüyor.
{"employeesextra":null}{"employees":[]}
employeesextra -> bu ifadeyi ben test için yapmıştım dikkate almayınız.
- aristotelesin berberi (03.11.19 11:05:41)
Şu şekilde deneyebilir misin?
tek tırnak + çift tırnak + nokta şeklinde
$statement = $conn->prepare(“SELECT name FROM tablethree WHERE twitid ='”.$id.”'”);
tek tırnak + çift tırnak + nokta şeklinde
$statement = $conn->prepare(“SELECT name FROM tablethree WHERE twitid ='”.$id.”'”);
- mya (03.11.19 12:56:11)
merhaba @mya cevabın için teşekkür ediyorum, bunu zaten denemiştim fakat takrar denedim olmadı
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='".$id."'");
başka önerin var mı ?
$statement = $conn->prepare("SELECT name FROM tablethree WHERE twitid ='".$id."'");
başka önerin var mı ?
- aristotelesin berberi (03.11.19 13:10:59)
ekleme yapılır yapılmaz twitid'yi dbden almıyor olabilir mi? $statement = $conn->prepare den hemen önce echo id yaptığınızda ne sonuç geliyor?
- tolstoyorospucocugudurdostoyevskiadamdir (04.11.19 00:27:59)
@tolstoyorospucocugudurdostoyevskiadamdir Merhaba cevabın için teşekkür ediyorum.
Dediğinizi denedim sonuç boş geliyor.
POst ile gelen id yi session atıp yazdıramıyorum bile, fakat dediğim gibi id boş değil çünkü veri geliyor, gelen veriyi web servis, veritabanına post ediyor.
Dediğinizi denedim sonuç boş geliyor.
POst ile gelen id yi session atıp yazdıramıyorum bile, fakat dediğim gibi id boş değil çünkü veri geliyor, gelen veriyi web servis, veritabanına post ediyor.
- aristotelesin berberi (04.11.19 14:21:12)
[]
RecyclerView 2 ArrayList ile nasıl çalışılır ?
Merhaba RecyclerView de 2 tane arraylist var bunu nasıl çalıştırabiliriz ?
Rica etsem cevaplarmısınız.
stackoverflow'da gösterdiği gibi yaptım fakat uygulama açılıyor ve kapanıyor.
stackoverflow.com
ArrayList<String> ulkeler = new ArrayList<>();
ulkeler.add("TÜRKİYE");
ulkeler.add("RUSYA");
ulkeler.add("FRANSA");
ulkeler.add("İNGİLTERE");
ulkeler.add("JAPONYA");
ulkeler.add("ALMANYA");
ArrayList<String> ulkelertwo = new ArrayList<>();
ulkeler.add("TÜRKİYEw");
ulkeler.add("RUSYAw");
ulkeler.add("FRANSAw");
ulkeler.add("İNGİLTEREw");
ulkeler.add("JAPONYAw");
ulkeler.add("ALMANYAw");
adapter = new MyAdapter(this,ulkeler,ulkelertwo);
rv.setAdapter(adapter);
public void onBindViewHolder(@NonNull one holder, int position) {
String ulke = ulkelerListe.get(position);
String ulketwo = ulkelerListetwo.get(position);
holder.textView.setText(ulke);
holder.textViewtwo.setText(ulketwo);
}
public int getItemCount() {
return ulkelerListe.size()+ulkelerListetwo.size();
}
logcat
github.com
Rica etsem cevaplarmısınız.
stackoverflow'da gösterdiği gibi yaptım fakat uygulama açılıyor ve kapanıyor.
stackoverflow.com
ArrayList<String> ulkeler = new ArrayList<>();
ulkeler.add("TÜRKİYE");
ulkeler.add("RUSYA");
ulkeler.add("FRANSA");
ulkeler.add("İNGİLTERE");
ulkeler.add("JAPONYA");
ulkeler.add("ALMANYA");
ArrayList<String> ulkelertwo = new ArrayList<>();
ulkeler.add("TÜRKİYEw");
ulkeler.add("RUSYAw");
ulkeler.add("FRANSAw");
ulkeler.add("İNGİLTEREw");
ulkeler.add("JAPONYAw");
ulkeler.add("ALMANYAw");
adapter = new MyAdapter(this,ulkeler,ulkelertwo);
rv.setAdapter(adapter);
public void onBindViewHolder(@NonNull one holder, int position) {
String ulke = ulkelerListe.get(position);
String ulketwo = ulkelerListetwo.get(position);
holder.textView.setText(ulke);
holder.textViewtwo.setText(ulketwo);
}
public int getItemCount() {
return ulkelerListe.size()+ulkelerListetwo.size();
}
logcat
github.com
ulkelertwo listeniz boş, bu yüzden
String ulketwo = ulkelerListetwo.get(position); satırınız indexoutofbounds hatası veriyor.
String ulketwo = ulkelerListetwo.get(position); satırınız indexoutofbounds hatası veriyor.
- eagofant (16.10.19 16:28:50)
@eagofant dediğin gibi 2. arraylist de isim hatası yapmışım.
Aşağıdaki gibi yaptım oldu.
ArrayList<String> ulkeler = new ArrayList<>();
ulkeler.add("TÜRKİYE");
ulkeler.add("RUSYA");
ulkeler.add("FRANSA");
ulkeler.add("İNGİLTERE");
ulkeler.add("JAPONYA");
ulkeler.add("ALMANYA");
ArrayList<String> ulkelertwo = new ArrayList<>();
ulkelertwo.add("TÜRKİYEw");
ulkelertwo.add("RUSYAw");
ulkelertwo.add("FRANSAw");
ulkelertwo.add("İNGİLTEREw");
ulkelertwo.add("JAPONYAw");
ulkelertwo.add("ALMANYAw");
;
Peki bu hatayı (indexoutofbounds ) nasıl farkettin log kayıtlarından mı ?
@kitik Merhaba cevabın için teşekkür ediyorum sorun halloldu.
Aşağıdaki gibi yaptım oldu.
ArrayList<String> ulkeler = new ArrayList<>();
ulkeler.add("TÜRKİYE");
ulkeler.add("RUSYA");
ulkeler.add("FRANSA");
ulkeler.add("İNGİLTERE");
ulkeler.add("JAPONYA");
ulkeler.add("ALMANYA");
ArrayList<String> ulkelertwo = new ArrayList<>();
ulkelertwo.add("TÜRKİYEw");
ulkelertwo.add("RUSYAw");
ulkelertwo.add("FRANSAw");
ulkelertwo.add("İNGİLTEREw");
ulkelertwo.add("JAPONYAw");
ulkelertwo.add("ALMANYAw");
;
Peki bu hatayı (indexoutofbounds ) nasıl farkettin log kayıtlarından mı ?
@kitik Merhaba cevabın için teşekkür ediyorum sorun halloldu.
- aristotelesin berberi (16.10.19 16:33:13)
evet loglarınızda belirtmiş.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
- eagofant (16.10.19 16:38:00)
Anladım teşekkürler.
- aristotelesin berberi (16.10.19 18:49:31)
[]
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)
[]
Android Like Button / id bulma sorunu / RecyclerView ve Mysql-php
Merhaba ben twitter klonu yapmaya çalışıyorum.
LOgin REgister Bitti.
twit atıp RecyclerView içerisinde görüntüleyebiliyorum.
Şİmdi card view içindeki twit lerin altına button yerleştirdim.
Bu yerleştirdiğim like butonunu dinamik olarak çalıştırmak istiyorum.
butona basıldığında sayılar artacak ve bu sayılar atılan tiwitin mysql tablosuna güncellenerek yazılacak.
Bunun için benim atılan twittin mysql tablosundaki id bulmam gerekiyor.
Son girilen veriyi bulmak istemiyorum.
BEn her twititn altında bulunan basıldığında sayıları artan like butonunun sayı bilgisini o tiwitin tablosuna koymam gerekiyor fakat id bulamıyorum.
Nasıl arayacağımı da bilmiyorum.
Biliyorum biraz karışık anlattım fakat konu karışık o yüzden.
YArdım ederseniz sevinirim.
Teşekkürler.
LOgin REgister Bitti.
twit atıp RecyclerView içerisinde görüntüleyebiliyorum.
Şİmdi card view içindeki twit lerin altına button yerleştirdim.
Bu yerleştirdiğim like butonunu dinamik olarak çalıştırmak istiyorum.
butona basıldığında sayılar artacak ve bu sayılar atılan tiwitin mysql tablosuna güncellenerek yazılacak.
Bunun için benim atılan twittin mysql tablosundaki id bulmam gerekiyor.
Son girilen veriyi bulmak istemiyorum.
BEn her twititn altında bulunan basıldığında sayıları artan like butonunun sayı bilgisini o tiwitin tablosuna koymam gerekiyor fakat id bulamıyorum.
Nasıl arayacağımı da bilmiyorum.
Biliyorum biraz karışık anlattım fakat konu karışık o yüzden.
YArdım ederseniz sevinirim.
Teşekkürler.
Aradigin şey position. Tıklama event'i position diye bir parametre alır. Recycler için bir item list olusturmussundur. Event metodu içinde örneğin list.get(position).getId dersen tıkladığın tweet için Id değerini verir.
Item list oluşturman gerektiğini daha önceki duyurunda söylemiştim.
Item list oluşturman gerektiğini daha önceki duyurunda söylemiştim.
- kaptan maydanoz (09.10.19 17:06:21)
Efendim ben dediğiniz gibi yaparak (holder.getAdapterPosition())
id elde ediyorum fakat bu id android tarafından benim twittime verilen id.
Yani (holder.getAdapterPosition()) id ile veritabanındaki id aynı olması gerekiyor fakat aynı değil.
Belki tüm veritabanını silersek aynı anda başladığı için aynı id verilebilmiş olur ama bu yöntemle mi çalışılmalı bilemedim.
Çünkü benim amacım twittin altıdaki like butonuna tıklandığında artan sayıları veritabanına gönderip sonrada orodan çekmek.
Göndermek yeride webservis tarafında güncelleme yapıyorum çünkü like sayıları artabilir.
id elde ediyorum fakat bu id android tarafından benim twittime verilen id.
Yani (holder.getAdapterPosition()) id ile veritabanındaki id aynı olması gerekiyor fakat aynı değil.
Belki tüm veritabanını silersek aynı anda başladığı için aynı id verilebilmiş olur ama bu yöntemle mi çalışılmalı bilemedim.
Çünkü benim amacım twittin altıdaki like butonuna tıklandığında artan sayıları veritabanına gönderip sonrada orodan çekmek.
Göndermek yeride webservis tarafında güncelleme yapıyorum çünkü like sayıları artabilir.
- aristotelesin berberi (09.10.19 17:28:55)
ben olsam şöle yapardım;
veritabanında tweetler tablosunda bir girdi düşünelim
id | kullanıcıadi | text | tarih | begenisayisi | begenenler |
2 | aristo | berberlik güzel | 2019-10-9 18:25:03 | 3 | "raydi""kaptan""aristo" |
gibi bir tablo kullanırdım, tweetler yüklenirken adapter içinde:
"sql sorgusu ile tweetler çekilirken listeye koyarken, yeni bir hashmap oluşturabiliriz sanki işte misal
liste başında; Map<String, String> tweed_id_listesi= new HashMap<String, String>();
adapter içinde; tweed_id_listesi.put("liste id" ,"veritabanı id" );
adapter içinde; tweed_id_listesi.put(holder.getAdapterPosition(), db.veritabani_id);
işte kısaca eşleştiriyoz,sonrası:
beğeni tuşuna basında fonksiyon şu: php/servere istek yollarım parametre ile.
tweet_id = tweed_id_listesi.get(holder.getAdapterPosition()) //veritabanındaki id gelecek
servere istek şöyle olur misal:
blabla,com/begen.php?tweetid=" + tweet_id + "&kullanici_adi=" + kul_adi;
istek yolladıktan sonra, cevap geliyor işte succes diye, sonra tweetleri yeniden yükleriz sayı güncellenir
begen.php içinde de tweet id'sinden tweeti bulup, tabloda sayıyı artırıp, "begenenler" sütununa ekleme yaparız işte "kul_adi" şeklinde.
tweetler yüklenirken daha önce beğendimi sorgusu için ise twetler yükleirken begenenler kısmında '"kul_adi"' böyle bir şey geçiyor mu,geçiyorsa daha önce beğenmiş, tuşu kırmızı yaparsın vs
çok mu uzun oldu :/
veritabanında tweetler tablosunda bir girdi düşünelim
id | kullanıcıadi | text | tarih | begenisayisi | begenenler |
2 | aristo | berberlik güzel | 2019-10-9 18:25:03 | 3 | "raydi""kaptan""aristo" |
gibi bir tablo kullanırdım, tweetler yüklenirken adapter içinde:
"sql sorgusu ile tweetler çekilirken listeye koyarken, yeni bir hashmap oluşturabiliriz sanki işte misal
liste başında; Map<String, String> tweed_id_listesi= new HashMap<String, String>();
adapter içinde; tweed_id_listesi.put("liste id" ,"veritabanı id" );
adapter içinde; tweed_id_listesi.put(holder.getAdapterPosition(), db.veritabani_id);
işte kısaca eşleştiriyoz,sonrası:
beğeni tuşuna basında fonksiyon şu: php/servere istek yollarım parametre ile.
tweet_id = tweed_id_listesi.get(holder.getAdapterPosition()) //veritabanındaki id gelecek
servere istek şöyle olur misal:
blabla,com/begen.php?tweetid=" + tweet_id + "&kullanici_adi=" + kul_adi;
istek yolladıktan sonra, cevap geliyor işte succes diye, sonra tweetleri yeniden yükleriz sayı güncellenir
begen.php içinde de tweet id'sinden tweeti bulup, tabloda sayıyı artırıp, "begenenler" sütununa ekleme yaparız işte "kul_adi" şeklinde.
tweetler yüklenirken daha önce beğendimi sorgusu için ise twetler yükleirken begenenler kısmında '"kul_adi"' böyle bir şey geçiyor mu,geçiyorsa daha önce beğenmiş, tuşu kırmızı yaparsın vs
çok mu uzun oldu :/
- masseter (09.10.19 18:00:30 ~ 18:03:36)
@aristo daha önce de belirttiğim gibi bir item sınıfı oluşturman gerekli. Cidden gerekli :) yoksa projenin sağlıklı bir şekilde yürüyeceğini düşünmüyorum.
Item sınıfı içinde id leri set edeceksin sonra oradan cekeceksin id'yi.
Item sınıfı içinde id leri set edeceksin sonra oradan cekeceksin id'yi.
- kaptan maydanoz (09.10.19 18:40:15)
@masseter , @kaptan maydanoz
Efendim teşekkür ediyorum.
Şimdi mola verdim yarın çalışmaya devam edeceğim.
Sabah dediklerinizi deneyeceğim.
Teşekkür ediyorum.
İyi akşamlar.
Efendim teşekkür ediyorum.
Şimdi mola verdim yarın çalışmaya devam edeceğim.
Sabah dediklerinizi deneyeceğim.
Teşekkür ediyorum.
İyi akşamlar.
- aristotelesin berberi (09.10.19 18:47:47)
@masseter , @kaptan maydanoz
Tekrar merhaba biraz ilerleme kaydettim, en azından şuan istediğim şeye nasıl ulaşacağımı biliyorum fakat uygulayamıyorum.
Efendim şimdi ben twitter clonu yapmak istiyorum.
Atılan twitten altına like butonu koymak ve dinamik olarak çalıştırmak istiyorum.
Fakat sorun like butonunun hangi twit id sahip olduğunu bilmiyordum.
Bu sorunu şöyle çözdüm.
Atılan tiwit veri tabanına kayıt oluyor sonra çekilerek android tarafında pars ediliyor.
Ben twit verisi çekerken id çekmiyordum.
Şimdi çekebiliyorum.
Fakat şimdide çektiğim id twitin altına yazamıyorum.
Atılan tiwit ile id ayrı card view ler halinde görünüyor.
Aynı card view içinde id ve twit olması için iki tane array list olması gerekiyor fakat onda da hata alıyorum.
public void tumKelimeler(){
String url = "goldgym.pro";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
kelimelerListe = new ArrayList<>();
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray kelimeler = jsonObj.getJSONArray("employees");
// looping through All Contacts
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);
Tekrar merhaba biraz ilerleme kaydettim, en azından şuan istediğim şeye nasıl ulaşacağımı biliyorum fakat uygulayamıyorum.
Efendim şimdi ben twitter clonu yapmak istiyorum.
Atılan twitten altına like butonu koymak ve dinamik olarak çalıştırmak istiyorum.
Fakat sorun like butonunun hangi twit id sahip olduğunu bilmiyordum.
Bu sorunu şöyle çözdüm.
Atılan tiwit veri tabanına kayıt oluyor sonra çekilerek android tarafında pars ediliyor.
Ben twit verisi çekerken id çekmiyordum.
Şimdi çekebiliyorum.
Fakat şimdide çektiğim id twitin altına yazamıyorum.
Atılan tiwit ile id ayrı card view ler halinde görünüyor.
Aynı card view içinde id ve twit olması için iki tane array list olması gerekiyor fakat onda da hata alıyorum.
public void tumKelimeler(){
String url = "goldgym.pro";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
kelimelerListe = new ArrayList<>();
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray kelimeler = jsonObj.getJSONArray("employees");
// looping through All Contacts
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);
- aristotelesin berberi (10.10.19 14:28:47)
Kelimeler kelime = new Kelimeler(turkce);
Kelimeler kelimes = new Kelimeler(id);
Bahsettiğim item sınıfı bu işte. Ama 1 tane olması gerekiyor sadece. O yüzden çekemiyorsun. Kodların bir yerde duruyor mu github filan? Ordan baksak daha iyi.
Kelimeler kelimes = new Kelimeler(id);
Bahsettiğim item sınıfı bu işte. Ama 1 tane olması gerekiyor sadece. O yüzden çekemiyorsun. Kodların bir yerde duruyor mu github filan? Ordan baksak daha iyi.
- kaptan maydanoz (10.10.19 16:08:02)
Merhaba @kaptan maydanoz ubuntu da github deskop çalışmıyor o yüzden dual bot iLE iki işletim sistemini kullanıyorum.Şimdi windowsa geçip githup push ettim. Oyuzden bukadar uzun sürdü.
Login register kısmı başka projede yaptım onu sonrada dahil edeceğim.
Aşağıdaki linke tıklayarak çalıştığım MainActivity ulaşabilirsin.
github.com
login register kısmı olan proje
github.com
Dediğin gibi iki tane item sınıfı olmuyor hata veriyor.
Login register kısmı başka projede yaptım onu sonrada dahil edeceğim.
Aşağıdaki linke tıklayarak çalıştığım MainActivity ulaşabilirsin.
github.com
login register kısmı olan proje
github.com
Dediğin gibi iki tane item sınıfı olmuyor hata veriyor.
- aristotelesin berberi (10.10.19 17:37:12)
[]
Android Like Button Yapmak / Dinamik - web servis ile konuşan bir button
Efendim merhaba ben twetter klonu yapmaya çalışıyorum login register bitti twit atıp Recycler içinde görüntüleyebiliyorsunuz.
Fakat cardview içine like buttonu koymam lazım ve her basıldığında sayaç artsın istiyorum.
Bunu başardım fakat uygulama kapandığında sayılar da kayboluyor.
Ben buttona her tıklandığında artan sayıları veritabanına atıp oradan da çekmek istiyorum.
Başka bir yol aklıma gelmedi.
Fakat bunu da nasıl yapacağımı bilmiyorum.
Çünkü her button için bir mysql de table oluşturmam gerekiyor.
Buda çok saçma tabiki.
Yani tıkandım yardım ederseniz çok sevinirim.
Teşekkürler.
Fakat cardview içine like buttonu koymam lazım ve her basıldığında sayaç artsın istiyorum.
Bunu başardım fakat uygulama kapandığında sayılar da kayboluyor.
Ben buttona her tıklandığında artan sayıları veritabanına atıp oradan da çekmek istiyorum.
Başka bir yol aklıma gelmedi.
Fakat bunu da nasıl yapacağımı bilmiyorum.
Çünkü her button için bir mysql de table oluşturmam gerekiyor.
Buda çok saçma tabiki.
Yani tıkandım yardım ederseniz çok sevinirim.
Teşekkürler.
işin piri olmamakla birlikte;
atılan her tweet tarzı ileti zaten database'de yer almıyor mu? bu tweetin kaç kere beğenildiğini o tabloda tutabilirsin.
user tablosunda da kullanıcının beğendiği içeriklerin id'sini tutabilirsin. beğenilerim kısmını oradan çekebilirsin.
atılan her tweet tarzı ileti zaten database'de yer almıyor mu? bu tweetin kaç kere beğenildiğini o tabloda tutabilirsin.
user tablosunda da kullanıcının beğendiği içeriklerin id'sini tutabilirsin. beğenilerim kısmını oradan çekebilirsin.
- ayin yazari (09.10.19 09:56:01)
@ayin yazari - teşekkürler çok mantıklı deneyeceğim. ı love you
- aristotelesin berberi (09.10.19 11:27:58)
[]
cardview for döngüsünün içine nasıl koyarım ? android - java
Merhaba twitter klonu yapmaya çalışıyorum.
Login - register kısmı tamamlandı.
Twit atabiliyor ve atılan tiwiti görüntülebiliyorum.
Son atılan twit de en üst sırada görülüyor.
Webservis olarak mysql-php kullanıyorum.
veritabanından gelen verileri android tarafına json olarak çekiyorum.
Sonra gelen json verilerini for döndüsü ile textview içine yazdırıyorum.
Fakat ben card view içinde yazılan yazı görülsün istiyorum.
Bunun için de card view for döngüsüne sokmam lazım.
Bunu nasıl yapabilirim. ?
Github proje
github.com
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("employees");
for (int i = 0; i < jsonArray.length();i++){
JSONObject employee = jsonArray.getJSONObject(i);
String akis = employee.getString("akis");
//String lastName = employee.getString("lastName");
card_text.append(akis + "," + "\n\n");
}
} catch (JSONException e) {
e.printStackTrace();
}
Login - register kısmı tamamlandı.
Twit atabiliyor ve atılan tiwiti görüntülebiliyorum.
Son atılan twit de en üst sırada görülüyor.
Webservis olarak mysql-php kullanıyorum.
veritabanından gelen verileri android tarafına json olarak çekiyorum.
Sonra gelen json verilerini for döndüsü ile textview içine yazdırıyorum.
Fakat ben card view içinde yazılan yazı görülsün istiyorum.
Bunun için de card view for döngüsüne sokmam lazım.
Bunu nasıl yapabilirim. ?
Github proje
github.com
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("employees");
for (int i = 0; i < jsonArray.length();i++){
JSONObject employee = jsonArray.getJSONObject(i);
String akis = employee.getString("akis");
//String lastName = employee.getString("lastName");
card_text.append(akis + "," + "\n\n");
}
} catch (JSONException e) {
e.printStackTrace();
}
Merhabalar. Yapman gereken şey adapter ve item siniflari oluşturmak.
Listview için olanlarla aynı şekilde. Bunu internetten bulabilirsin.
Yapman gereken;
1 main class (burada jsondan cektigin verileri for döngüsü içinde item sınıfından olusturdugun bir list icerisine atmalisin ve daha sonra olusturdugun listi adapter'a set etmelisin. )
1 item için xml arayüz ( içinde sadece cardview olan xml dosyası)
1 item sınıfı ( burada isim soyisim vs. Gerekli bilgileri tanimliyorsun, get set metotlarını olustur)
1 list adapter class ( burada item sınıfını set edip arayüzde ne nereye gelecek onu ayarliyorsun )
Internette bolca örnek vardır:)
Listview için olanlarla aynı şekilde. Bunu internetten bulabilirsin.
Yapman gereken;
1 main class (burada jsondan cektigin verileri for döngüsü içinde item sınıfından olusturdugun bir list icerisine atmalisin ve daha sonra olusturdugun listi adapter'a set etmelisin. )
1 item için xml arayüz ( içinde sadece cardview olan xml dosyası)
1 item sınıfı ( burada isim soyisim vs. Gerekli bilgileri tanimliyorsun, get set metotlarını olustur)
1 list adapter class ( burada item sınıfını set edip arayüzde ne nereye gelecek onu ayarliyorsun )
Internette bolca örnek vardır:)
- kaptan maydanoz (03.10.19 14:52:25)
@kaptan maydanoz Merhaba öncelikle 6 gündür cevap veremediğim için özürdiliyorum. Bunun sebebi görmemem farketmediğim için üzgünüm.
Cevabın için teşekkür ediyorum fakat ben şu şekilde yaptım.
Recycler view ile yapabildim.
Cevabın için teşekkür ediyorum fakat ben şu şekilde yaptım.
Recycler view ile yapabildim.
- aristotelesin berberi (09.10.19 09:31:53)
[]
En son gönderiyi üstte gösterme / Android - Java
Efendim merhaba bir tiwitter benzeri uygulama yapmaya çalışıyorum.
login register olabiliyor,
twit atabiliyor ve tüm twitleri görebiliyorsunuz.
Fakat ben en son gönderiyi en üst sırada görmek istiyorum.
Bunu nasıl yapabilirim.
Webservise olarak mysql - php kullanıyorum.
Yardım ederseniz sevinirim.
Bu soruyu stackoverflow.com ' da da sordum fakat cevap alamadım.
Birde ekşi sözlüğümün yazılımcı elit üyelerine sormak istedim.
Detaylar
github proje detayları
github.com
login register olabiliyor,
twit atabiliyor ve tüm twitleri görebiliyorsunuz.
Fakat ben en son gönderiyi en üst sırada görmek istiyorum.
Bunu nasıl yapabilirim.
Webservise olarak mysql - php kullanıyorum.
Yardım ederseniz sevinirim.
Bu soruyu stackoverflow.com ' da da sordum fakat cevap alamadım.
Birde ekşi sözlüğümün yazılımcı elit üyelerine sormak istedim.
Detaylar
github proje detayları
github.com
Phpde sql sorgusu ile alakalı sanırım istediğiniz şey. "ORDER BY tarih DESC"
- masseter (02.10.19 14:40:17)
@masseter merhaba cavabın için teşekkür ediyorum. Cevabın sayesinde yaptım ve oldu çok teşekkür ediyorum çok mutlu oldum.
Sonra birde sayfayı onclick yaptıktan sonra yenileme yaptım artık hiç bir sorun kalmadı.
Senin gibi bilgili biri ile sürekli takipleşmek isterim iletişim bilgilerimi gönderiyorum.
Tekrar teşekkürler.
Bazı soruların cevabı çok kolay fakat ulaşmak zor oluyor.
Sonra birde sayfayı onclick yaptıktan sonra yenileme yaptım artık hiç bir sorun kalmadı.
Senin gibi bilgili biri ile sürekli takipleşmek isterim iletişim bilgilerimi gönderiyorum.
Tekrar teşekkürler.
Bazı soruların cevabı çok kolay fakat ulaşmak zor oluyor.
- aristotelesin berberi (02.10.19 15:08:54 ~ 15:09:07)
[]
520mb Android Uygulama Olur mu ?
Merhaba ben bir fitness uygulaması yapıyorum. Fitnes hareketlerini video ve fotoğraf ve text şeklinde öğretecek.Uygulama internetsiz ortamda kullanısın diye herşeyi kısa hareket videolarınıda uygulamanın içine koydum.Şuan bacak kısmını bitirdim ve 30tane actvy oldu daha omuz var arka kol var var da var ve şuan boyut 520 mb bittiğinde 1 gb bile çıkabilir görünüyor.
Bunun bir sakıncası var mı uygulama ağır değil güzel çalışıyor.
Bukadar actvty kullanmadan nasıl yapabilirim.
Local html yani local webview kullanarak da yapabilirim tavsiye edermisiniz. ?
Bunun bir sakıncası var mı uygulama ağır değil güzel çalışıyor.
Bukadar actvty kullanmadan nasıl yapabilirim.
Local html yani local webview kullanarak da yapabilirim tavsiye edermisiniz. ?
apk halini aldın mı hocam onun? apk hali daha düşük tutar. oldukça fazla fark eder.
- bidakikanizialicam (31.05.19 23:02:56)
@bidakikanizialicam merhaba apk aldım tabletten denedim 520 mb ve daha bacak bölümü bitti .Bu kadar çok activty kullanmak doğru mu ?Değilse başka ne yapabilirim.
Bir uygulama 1 gb olsa ne olur ?
Ben uygulamalara baktım google play bile 200 mb geçmiyor.Peki bir activty tekrar tekrar mı kullanıyorlar anlayamadım.
Birde derlerken bile 5 dk falan sürüyor.
Bir uygulama 1 gb olsa ne olur ?
Ben uygulamalara baktım google play bile 200 mb geçmiyor.Peki bir activty tekrar tekrar mı kullanıyorlar anlayamadım.
Birde derlerken bile 5 dk falan sürüyor.
- aristotelesin berberi (31.05.19 23:06:26)
1 video veya fotoğraf kaç mb ? 4-5 mb'lık fotolar yerine 900 kblık fotolar koyabilirsiniz video kalitesini düşürün daha az kaplar.
- kitik (31.05.19 23:06:30)
@kitik Merhaba videolar fazla yer kaplamıyor şuan 5 tane video var hepsi yarım dk kadar. Sorun activiy'nin çok olması galiba.
- aristotelesin berberi (31.05.19 23:09:33)
activity dediğiniz text dosyası kadar yer kaplar 20-30 kb yer kaplar.
sol kısımda activiylerden birine sağ tıklayıp "show in explorer" veya dosya dizinini gösteri tıklayın.
uygulamanın yüklü oldugu klasör açılacak. bir activiy'nin kaç kb oldugu veya foto ve videoların kaç mb olduğu orda yazar.
sol kısımda activiylerden birine sağ tıklayıp "show in explorer" veya dosya dizinini gösteri tıklayın.
uygulamanın yüklü oldugu klasör açılacak. bir activiy'nin kaç kb oldugu veya foto ve videoların kaç mb olduğu orda yazar.
- kitik (31.05.19 23:19:56)
@kitik evet videolar çok yer yaplıyor.O zaman onları ben youtube'dan çekeyim interneti olmayanlarda resimlerden bakacak artık.Başka yolu yok.
O zaman şunu diyebilirmiyiz istediğimz kadar activty kullanabiliriz sorun olmaz.Bunu diyebilirmiyiz ?
Teşekkür ediyorum.
O zaman şunu diyebilirmiyiz istediğimz kadar activty kullanabiliriz sorun olmaz.Bunu diyebilirmiyiz ?
Teşekkür ediyorum.
- aristotelesin berberi (31.05.19 23:27:42)
Boyut çok büyük. Açıkçası ben indirmezdim. Şöyle bir tavsiye verebilirim. Uygulama açıldığında opsiyonel bir downloader ekle. Kullanıcıya da eğer internetsiz kullanmak isterse download etmesini, aksi durumda uygulamanın internetsiz çalışmayacağını(veya bahsettiğin gibi resim de sunabilirsin) söyle. Kısaca kullanıcıya seçenek sunabilirsin.
- gozyakansakiz (31.05.19 23:47:25)
@gozyakansakiz merhaba evet nike uygulaması öyle yapmış fakat onu nasıl yapacağımı bilmiyorum ilk sürüm videosuz olsun sonra öğrenince indirme tekniği ile yapacağım. Teşekkürler.
İndirme yöntemi konusunda tavsiye edebileceğin bir şey var mı firebase mi kullanmalıyım.
İndirme yöntemi konusunda tavsiye edebileceğin bir şey var mı firebase mi kullanmalıyım.
- aristotelesin berberi (31.05.19 23:52:45)
videolar gif mi?
- inekadam (01.06.19 08:55:50)
@inekadam hayır gif değildi şuan videoları kaldırdım.çok yer tutuyor. gif denmedim tavsiye edermisin ?
- aristotelesin berberi (01.06.19 12:02:25)
tam tersi normalde gif daha çok yer tutar... webm'in mp4 karşısında daha az yer tutması lazım ama onu uygulamana entegre etmen ya da her cihaz oynatır mı bilmiyorum.
- inekadam (01.06.19 22:23:47)
@inekadam video işini bıraktım şimdi fotoğrafları badybulding.com dan almıştım onlarda telif atabilirler o yüzden tekrar çekme yoluna gidicem işler karıştı.
Teşekkür ediyorum.
Teşekkür ediyorum.
- aristotelesin berberi (01.06.19 22:34:12)
[]
multiple inheritance java nedir ?
Merhaba çoklu kalıtım konusunu anlamaya çalışıyorum.
şöyle bir nesne oluşturma şekli var.
public class test{
public static void main(String args[]){
sayısal_öğrencisi ali = new sayısal_öğrencisi( new bilgisayar_mühendisliği_öğrencisi());
}
}
Nesne oluştururken new den sonraki constructor metodunun içine parametre giriyor bu nasıl mümkün olabiliyor bunu anlayamıyorum.
Teşekkürler.
şöyle bir nesne oluşturma şekli var.
public class test{
public static void main(String args[]){
sayısal_öğrencisi ali = new sayısal_öğrencisi( new bilgisayar_mühendisliği_öğrencisi());
}
}
Nesne oluştururken new den sonraki constructor metodunun içine parametre giriyor bu nasıl mümkün olabiliyor bunu anlayamıyorum.
Teşekkürler.
Oncelikle Java'da multiple inheritance destegi yok, onu belirteyim. Kodun gerisini gormeden net yorum yapmak mumkun degil fakat anlamaya calistiginiz konu zannedersem composition.
Bundan once multiple inheritance'nin ne oldugundan bahsedeyim:
class Teker { ... }
class Motor { ... }
class Araba extends Teker, Motor { ... }
Gordugun uzere Araba class'i hem Teker'i hem Motor'u inherit ediyor. Fakat bunu javada yapmak mumkun degil cunku extend ifadesi kendisinden sonra sadece bir tane class'in varligina izin veriyor. Yani java sadece single inheritanceye izin veriyor. Mesela C++'ta buna benzer bir sekilde multiple inheritance yapmak mumkun. Bu sayede Araba class'i hem Teker'in hem de Motor'un fonksiyonlarini/degiskenlerini kullanabilecekti. Java'nin buna izin vermemesinin bazi sebepleri var, dil tasarlayanlarin secimi bu yonde. Genel itibariyla izin verilmemesinin sebebi olarak "diamond problem" one surulur, yazip arastirabilirsiniz.
Yukaridaki ornekten giderek compostionu aciklayayim. Yukaridaki gibi classlari inherit etmek yerine sunu yapabiliriz:
class Teker { ... }
class Motor { ... }
class Araba {
public Teker teker;
public Motor motor;
}
Sonucta araba dedigimiz sey teker ve motora sahiptir, onlardan gelmez. Yani Motor ve Araba arasindaki iliski Memeli ve Insan arasindaki iliski gibi degil.
Verdigin ornekteki classlar tam olarak neyi ifade ediyor bilmiyorum ama buradan gordugum kadariyla yukarida acikladigim iki durum icin de pek anlamli seyler ifade etmiyorlar.
Bundan once multiple inheritance'nin ne oldugundan bahsedeyim:
class Teker { ... }
class Motor { ... }
class Araba extends Teker, Motor { ... }
Gordugun uzere Araba class'i hem Teker'i hem Motor'u inherit ediyor. Fakat bunu javada yapmak mumkun degil cunku extend ifadesi kendisinden sonra sadece bir tane class'in varligina izin veriyor. Yani java sadece single inheritanceye izin veriyor. Mesela C++'ta buna benzer bir sekilde multiple inheritance yapmak mumkun. Bu sayede Araba class'i hem Teker'in hem de Motor'un fonksiyonlarini/degiskenlerini kullanabilecekti. Java'nin buna izin vermemesinin bazi sebepleri var, dil tasarlayanlarin secimi bu yonde. Genel itibariyla izin verilmemesinin sebebi olarak "diamond problem" one surulur, yazip arastirabilirsiniz.
Yukaridaki ornekten giderek compostionu aciklayayim. Yukaridaki gibi classlari inherit etmek yerine sunu yapabiliriz:
class Teker { ... }
class Motor { ... }
class Araba {
public Teker teker;
public Motor motor;
}
Sonucta araba dedigimiz sey teker ve motora sahiptir, onlardan gelmez. Yani Motor ve Araba arasindaki iliski Memeli ve Insan arasindaki iliski gibi degil.
Verdigin ornekteki classlar tam olarak neyi ifade ediyor bilmiyorum ama buradan gordugum kadariyla yukarida acikladigim iki durum icin de pek anlamli seyler ifade etmiyorlar.
- yasli ateist (26.05.19 11:56:03)
@yasli ateist merhaba geç gördüğüm için özürdilerim teşekkürler.Yararlanıyorum.
- aristotelesin berberi (31.05.19 21:53:01)
dışarıdan giden değerdir.
- karapage (24.05.19 20:33:54)
Merhaba @karapage anlayamadım,biraz daha detaylı anlatirmisin. ?
Teşekkürler.
Teşekkürler.
- aristotelesin berberi (24.05.19 20:37:27)
resimdeki public ile başlayan şeyler fonkiyondur.
public void topla(5)
denirse
{
bu parentezlerin içine 5 i yolla demektir.
}
parantezlerin içindki işleme 5 i yollarsın ve içinde o 5i kullanarak işlem yaparsın.
5 i yollama neden yapılıyor dersen.
elimizde 5 var diyelim.
bir yere yollayınca onun karesini almasını istiyorum.
başka bir yere yollayınca 5 den 3 çıksın istiyorum.
ben bunları fonksiyonlar olmadan her seferinde yapabilirim.
ama fonksiyonlar ile bu işlemler hızlanıyor.
bugun 5 yollarken yarın 10 yollayabilirim.
oop de fonsiyonların amacı budur. yapılacak işleri bölmek ve tekrar tekrar kullanabilmek.
public void topla(5)
denirse
{
bu parentezlerin içine 5 i yolla demektir.
}
parantezlerin içindki işleme 5 i yollarsın ve içinde o 5i kullanarak işlem yaparsın.
5 i yollama neden yapılıyor dersen.
elimizde 5 var diyelim.
bir yere yollayınca onun karesini almasını istiyorum.
başka bir yere yollayınca 5 den 3 çıksın istiyorum.
ben bunları fonksiyonlar olmadan her seferinde yapabilirim.
ama fonksiyonlar ile bu işlemler hızlanıyor.
bugun 5 yollarken yarın 10 yollayabilirim.
oop de fonsiyonların amacı budur. yapılacak işleri bölmek ve tekrar tekrar kullanabilmek.
- karapage (24.05.19 20:53:25)
Tamam sen metodlara parametre yollamayı soyluyorsun onu biliyorum. fakat new value nedir onu bilmiyorum.
- aristotelesin berberi (24.05.19 20:56:46)
@aristotelesin berberi adam üşenmemiş gerizekalıya anlatır gibi anlatmış hala new value nedir diye soruyosun
- Yavuşuhlu (24.05.19 22:00:57)
arkadaşın anlattığı metoddaki 5 varya o velue dur diyelim ki
integer (tamsayi) bir değişken(variable) tanımladın
int i = 5;
int -- integer değişkenin tipi
i --- değişkene verilen isim yada sembol
5 --- değişkenin değeri yani value
değişken i nin değerin şu an 5
i = i + 1
değişkenin değeri 6 oldu al sana new value
yani i nin yeni değeri 6 oldu denir
değişkenin aldığı yeni değerdir
bu değer değişkenin kullanım durumuna göre new value yani yeni değerde alabilir
değeri değişmeden kalabilirde vereceğin değerle hafızada o değer için bir yer ayrılır bu yüzden önemlidir değişkenin hiç bir şekilde yeni değer alması istenmiyorsa constant değişken tanımlanır ve bu değişken hiç bir şekilde new value alamaz değeri değişmez javada constant değişken final deyimi ile tanımlanır
integer (tamsayi) bir değişken(variable) tanımladın
int i = 5;
int -- integer değişkenin tipi
i --- değişkene verilen isim yada sembol
5 --- değişkenin değeri yani value
değişken i nin değerin şu an 5
i = i + 1
değişkenin değeri 6 oldu al sana new value
yani i nin yeni değeri 6 oldu denir
değişkenin aldığı yeni değerdir
bu değer değişkenin kullanım durumuna göre new value yani yeni değerde alabilir
değeri değişmeden kalabilirde vereceğin değerle hafızada o değer için bir yer ayrılır bu yüzden önemlidir değişkenin hiç bir şekilde yeni değer alması istenmiyorsa constant değişken tanımlanır ve bu değişken hiç bir şekilde new value alamaz değeri değişmez javada constant değişken final deyimi ile tanımlanır
- baknedicem (24.05.19 22:14:39 ~ 22:22:32)
Merhaba @baknedicem gerçekten güzel anlattın teşekkür ediyorum.
@Yavuşuhlu dostum biraz geç anladım sory.
@karapage teşekkürler.
@Yavuşuhlu dostum biraz geç anladım sory.
@karapage teşekkürler.
- aristotelesin berberi (25.05.19 11:55:44)
[]
setOnClickListener nasıl çalışır detay java android
btnone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
efendim merhabalar bilginize ihtiyacım var bilginizden yararlanmamı sağlamanızı ve mahrum bırakmamanızı rica ediyorum.
Ben bu setOnClickListenerarka tarafta nasıl calıstigini anlamaya çalışıyorum
android studioda isimlerin uzerine gelince ctrl basili tutup maus ile tiklayinca kodun arka tarafina gidiyorya bende oyle yaptim ve
setOnClickListener ın bir metod ve
OnClickListener da view clasının içine yazılmış bir interface oldugunu ögrendim
setOnClickListener in ne is yaptigini biliyorum tiklanma olayi oldugunda ne yapilmasini istiyorsaniz yaziyorsunuz bir dinleyici ama aslinda biz bir classin bir metodunu kullanıyoruz fakat kullanma sekli cok farkli normalde biz bir classin bir metodunu kullanmak istiyorsak nesnesini olistururuz veya extent veya implement ederiz fakat burada
setOnClickListener in icine parametre olarak new aliyor sonra bir imterface aliyor bu nasil olabiliyor anlayamiyorum.
tesekkurler.
detay
setOnClickListener View.java nin metodu
@Override
public void onClick(View v) {
}
});
efendim merhabalar bilginize ihtiyacım var bilginizden yararlanmamı sağlamanızı ve mahrum bırakmamanızı rica ediyorum.
Ben bu setOnClickListenerarka tarafta nasıl calıstigini anlamaya çalışıyorum
android studioda isimlerin uzerine gelince ctrl basili tutup maus ile tiklayinca kodun arka tarafina gidiyorya bende oyle yaptim ve
setOnClickListener ın bir metod ve
OnClickListener da view clasının içine yazılmış bir interface oldugunu ögrendim
setOnClickListener in ne is yaptigini biliyorum tiklanma olayi oldugunda ne yapilmasini istiyorsaniz yaziyorsunuz bir dinleyici ama aslinda biz bir classin bir metodunu kullanıyoruz fakat kullanma sekli cok farkli normalde biz bir classin bir metodunu kullanmak istiyorsak nesnesini olistururuz veya extent veya implement ederiz fakat burada
setOnClickListener in icine parametre olarak new aliyor sonra bir imterface aliyor bu nasil olabiliyor anlayamiyorum.
tesekkurler.
detay
setOnClickListener View.java nin metodu
onceki sorularinda aciklamistim bunu.
setOnClickListener parametre olarak View.OnClickListener interface'inin bir instance'ini bekliyor. orada yaptigin ilk once new View.OnclickListener(){} seklinde bu interface'i implement eden abstract class initialize ediyorsun daha sonra da bu instance'i setOnClickListener'a parametre olarak yolluyorsun.
sana tavsiyem android calismayi birakip ilk once OOP ve java temelini gelistirmen. sordugun soruda android ile ilgili bir durum yok. java ve OOP'nin en temelleri ile ilgili eksikligin var. yanlis hatirlamiyorsam OOP'yi C# uzerinden calisiyordun. eger android ogrenmeye calisiyorsan java uzerinden OOP ogrenmeye calis. maalesed c#'ta bazi seyler farkli
setOnClickListener parametre olarak View.OnClickListener interface'inin bir instance'ini bekliyor. orada yaptigin ilk once new View.OnclickListener(){} seklinde bu interface'i implement eden abstract class initialize ediyorsun daha sonra da bu instance'i setOnClickListener'a parametre olarak yolluyorsun.
sana tavsiyem android calismayi birakip ilk once OOP ve java temelini gelistirmen. sordugun soruda android ile ilgili bir durum yok. java ve OOP'nin en temelleri ile ilgili eksikligin var. yanlis hatirlamiyorsam OOP'yi C# uzerinden calisiyordun. eger android ogrenmeye calisiyorsan java uzerinden OOP ogrenmeye calis. maalesed c#'ta bazi seyler farkli
- crucio (30.04.19 11:40:29)
Efendim merhabalar
# Onclicklistener interfacesini implement eden abstract classı bulamadım.
# efendim ben hiç c# calismadim.hep java çalışıyorum.
# Ben oop konularını bitirmiştim fakat onerileriniz sayesinde anladigimdan şüphe ederek tekrar etme karari aldim. Bugun saat 8'e kadar oop konusunu tekrar edecegim.
# Belki bu aksam belki yarin tekrar bilginize ihtiyac duyabilirim benimle bilgilerinizi ve tecrubenizi oaylasmanizi tekrar rica ediyorum.
tesekkurler.
@curucio ve @entegre
github.com
# Onclicklistener interfacesini implement eden abstract classı bulamadım.
# efendim ben hiç c# calismadim.hep java çalışıyorum.
# Ben oop konularını bitirmiştim fakat onerileriniz sayesinde anladigimdan şüphe ederek tekrar etme karari aldim. Bugun saat 8'e kadar oop konusunu tekrar edecegim.
# Belki bu aksam belki yarin tekrar bilginize ihtiyac duyabilirim benimle bilgilerinizi ve tecrubenizi oaylasmanizi tekrar rica ediyorum.
tesekkurler.
@curucio ve @entegre
github.com
- aristotelesin berberi (30.04.19 13:22:35)
onclicklistenere implement eden abstract class senin ilk soruda belirttigin yer iste "new View.OnClickListener() {}" dediginde View.OnClickListener interface'inden abstract class instantiate etmis oluyorsun.
eger ingilizcen varsa su kursu takip edebilirsin. turkce altyazisi da varmis gerci. www.coursera.org
eger ingilizcen varsa su kursu takip edebilirsin. turkce altyazisi da varmis gerci. www.coursera.org
- crucio (30.04.19 13:56:00 ~ 13:59:33)
@crucio
# galiba ne demek istedigini anladım abstract class orneklemesi olusturuyor diyorsun.
# Ben bugun biraz oop çalışacağım daha iyi anlayacagimi dusunuyorum calisinca.
# Dostum onerdigin kurs ucretli ben oop konusunu ucretsiz bilgilerden yararlanarakn ogrenebilirim tesekkurler.
# galiba ne demek istedigini anladım abstract class orneklemesi olusturuyor diyorsun.
# Ben bugun biraz oop çalışacağım daha iyi anlayacagimi dusunuyorum calisinca.
# Dostum onerdigin kurs ucretli ben oop konusunu ucretsiz bilgilerden yararlanarakn ogrenebilirim tesekkurler.
- aristotelesin berberi (30.04.19 14:47:24)
- crucio (01.05.19 03:08:41)
Günaydın @crucio simdi anladim ki oop konusunda ciddi bilgi eksikligim varmiş.Bu bilgi eksikligimi yeni fark ediyorum ve bir kac gunu mu bu konuyu tam olarak kavramak icin ayirdim.
teşekkür ederim beni aydinlattigin icin buyuksun.
verdigin adres guzel kayit oldum iyi ki soyledin.
teşekkür ederim beni aydinlattigin icin buyuksun.
verdigin adres guzel kayit oldum iyi ki soyledin.
- aristotelesin berberi (01.05.19 09:21:01)
[]
Android Java
Merhaba ben uygulama içi satın alma işlemini anlamaya çalışıyorum anlamadığım bir konu var.
Şöyle bir tanımlama kullanılmış.
private final BillingClient mBillingClient;
ctrl ile BillingClient üzerine geldiğim de BillingClient.java açılıyor ve BillingClient.javanın bir abstact class olduğunu anlıyorum fakat abstract clas extensts ile dahil edilir.
Hemen aklıma casting yapılma ihtimali geldi fakat bunun içinde kalıtım olması gerekiyor ve kalıtım içinde extensts veya interface ise de imlements kullanılır böyle bir şey kullanılmamış.
Bu tanımlama şekli nedir acaca ?
codelabs.developers.google.com
Şöyle bir tanımlama kullanılmış.
private final BillingClient mBillingClient;
ctrl ile BillingClient üzerine geldiğim de BillingClient.java açılıyor ve BillingClient.javanın bir abstact class olduğunu anlıyorum fakat abstract clas extensts ile dahil edilir.
Hemen aklıma casting yapılma ihtimali geldi fakat bunun içinde kalıtım olması gerekiyor ve kalıtım içinde extensts veya interface ise de imlements kullanılır böyle bir şey kullanılmamış.
Bu tanımlama şekli nedir acaca ?
codelabs.developers.google.com
oncelikle abstract class'i illa extend etmek zorunda degilsin. Anonymous olarak da bu classi implement edebilirsin.
new BillingClient() {
@Override
public void myAbstractMethod() {
}
}
seklinde BillingClient instance'i olusturup kullanabilirsin. AsyncTask class'ina bakarsan o da ayni sekilde.
ikincisi extend edilen class'lar super classlari yerine kullanilabilinir. yani
public class BillingClientImpl extends BillingClient {
}
olsun diyelim.
BillingClient billingClient = new BillingClientImpl(); seklinde kullanabilirsin. Gorunuse gore OOP konularini tam kavrayamamissin. OOP uzerine biraz daha calismalisin
new BillingClient() {
@Override
public void myAbstractMethod() {
}
}
seklinde BillingClient instance'i olusturup kullanabilirsin. AsyncTask class'ina bakarsan o da ayni sekilde.
ikincisi extend edilen class'lar super classlari yerine kullanilabilinir. yani
public class BillingClientImpl extends BillingClient {
}
olsun diyelim.
BillingClient billingClient = new BillingClientImpl(); seklinde kullanabilirsin. Gorunuse gore OOP konularini tam kavrayamamissin. OOP uzerine biraz daha calismalisin
- crucio (04.04.19 11:38:33)
Merhaba @crucio bana değerli vaktini ayırarak cevap verdiğin için teşekkür ediyorum. Verdiğin cevap'ı çok faydalı buldum.
Fakat bilgisayarı güncelemem gerekti ve aksilikler yaşadım O yüzden geri dönüş yapmam uzun sürdür özür diliyorum.
instance oluşturarak abstract class'ı oluşturabilirsin diyorsun evet denedim oluyor fakat aşağıda vereceğim link te base class'ların instancesi oluşturulamaz diyor.
www.akinabdullahoglu.com
Birde bu olayın mantığını tam anlayamadım.
Abstrac class soyut class olduğu için nesne oluşturulamaz yani ram'de yer ayrılmaz ama nesne oluşturmak için kullanılan new operatörü absrtact class'ın instance'si oluşturulurken de kullanılabilir peki bu new tam olarak ne yapıyor ?
Aşağıda verdiğim link'teki yazıları google çeviri kullanarak okudum ama tam anlayamadım.
stackoverflow.com
Ayrıca bir abstact class'ı bir metod gibi yazıp nasıl örnekleme oluşturulabiliyor kafam almıyor.
Sonuçta BillingClient bir abstrac class olduğunu kabul edersek bir class'ı metot gibi yazmak da ne demek oluyor new BillingClient() {}
İşe yaradığını biliyorum denedim oluyor fakat mantığını anlayamadım.
İkinci örneğine gelirsek
BillingClient billingClient = new BillingClientImpl();
yukarıda ki yöntemle biz zoyut bir sınıfı yani ram'de yer ayrılamayan bir sınıfı BillingClientImpl sınıfının ram'deki yerini kullanmasını sağlıyoruz değil mi ?
Soyut sınıf somut sınıfın ram'deki yerini kullanıyor.
Doğru mu anladım ?
Fakat bilgisayarı güncelemem gerekti ve aksilikler yaşadım O yüzden geri dönüş yapmam uzun sürdür özür diliyorum.
instance oluşturarak abstract class'ı oluşturabilirsin diyorsun evet denedim oluyor fakat aşağıda vereceğim link te base class'ların instancesi oluşturulamaz diyor.
www.akinabdullahoglu.com
Birde bu olayın mantığını tam anlayamadım.
Abstrac class soyut class olduğu için nesne oluşturulamaz yani ram'de yer ayrılmaz ama nesne oluşturmak için kullanılan new operatörü absrtact class'ın instance'si oluşturulurken de kullanılabilir peki bu new tam olarak ne yapıyor ?
Aşağıda verdiğim link'teki yazıları google çeviri kullanarak okudum ama tam anlayamadım.
stackoverflow.com
Ayrıca bir abstact class'ı bir metod gibi yazıp nasıl örnekleme oluşturulabiliyor kafam almıyor.
Sonuçta BillingClient bir abstrac class olduğunu kabul edersek bir class'ı metot gibi yazmak da ne demek oluyor new BillingClient() {}
İşe yaradığını biliyorum denedim oluyor fakat mantığını anlayamadım.
İkinci örneğine gelirsek
BillingClient billingClient = new BillingClientImpl();
yukarıda ki yöntemle biz zoyut bir sınıfı yani ram'de yer ayrılamayan bir sınıfı BillingClientImpl sınıfının ram'deki yerini kullanmasını sağlıyoruz değil mi ?
Soyut sınıf somut sınıfın ram'deki yerini kullanıyor.
Doğru mu anladım ?
- aristotelesin berberi (09.04.19 12:47:14)
selam,
rica ederim yardimci olabildigime sevindim. oncelikle terimlerin turkcelerini bilmiyorum o yuzden ingilizce terimler kullanicam kusura bakma.
-verdigin linkte c# icin bahsetmis. c#'da dedigin gibi abstract classlari anonymous class olarak extend edip instantiate edemezsin. java'da bu mumkun. aslinda javada yaptigimiz biraz syntactic sugar gibi dusunebilirsin.
new BillingClient() {} seklinde abstract class'in anonymous instance'ini olusturdugumuzda arka planda java bu BillingClient'tan extend eden baska bir class tanimliyor. genelde bunun ismi BaskaBirClassAdi_$1 seklinde olur. yani aslinda java compiler su sekilde bir kod olusturuyor
public class BaskaBirClassAdi_$1 extends BillingClient{
public vois abstractClass() {
//doSomething
}
}
ve bu class'in instance'ini olusturup sana donuyor. Eger kodu debug edip abstractClass icinde class adina bakarsan class adinin bu sekilde oldugunu gorursun.
"new" operatorunun amaci memory allocation yapmaktir. memory allocation yapmak hafizada o alani sadece bu class'in kullanimi icin isaretlemek demektir. henuz bu hafizada bu alana birsey yazilmadi, cop veri var su anda burada. constructor'da ise bu hafizaya class bilgileri yaziliyor. yani aslinda new operatoru eger C yada C++ biliyorsan "malloc" fonksiyonunun islevini goruyor. java daha high level bir dil oldugu icin memory allocation'i ve initialization'i tek bir komutta yapiyor.
"new BillingClient() {}" bu kullanimin nasil calistigini yukarida yazdim, aciklayici olmustur sanirim.
BillingClient billingClient = new BillingClientImpl(); burada yaptigimiz da polymorphisim. Extend edilen class'a base class gibi davraniyoruz. bu nesne ile etkilesime gecenler sadece base class'in ozelliklerini gorebiliyor.
rica ederim yardimci olabildigime sevindim. oncelikle terimlerin turkcelerini bilmiyorum o yuzden ingilizce terimler kullanicam kusura bakma.
-verdigin linkte c# icin bahsetmis. c#'da dedigin gibi abstract classlari anonymous class olarak extend edip instantiate edemezsin. java'da bu mumkun. aslinda javada yaptigimiz biraz syntactic sugar gibi dusunebilirsin.
new BillingClient() {} seklinde abstract class'in anonymous instance'ini olusturdugumuzda arka planda java bu BillingClient'tan extend eden baska bir class tanimliyor. genelde bunun ismi BaskaBirClassAdi_$1 seklinde olur. yani aslinda java compiler su sekilde bir kod olusturuyor
public class BaskaBirClassAdi_$1 extends BillingClient{
public vois abstractClass() {
//doSomething
}
}
ve bu class'in instance'ini olusturup sana donuyor. Eger kodu debug edip abstractClass icinde class adina bakarsan class adinin bu sekilde oldugunu gorursun.
"new" operatorunun amaci memory allocation yapmaktir. memory allocation yapmak hafizada o alani sadece bu class'in kullanimi icin isaretlemek demektir. henuz bu hafizada bu alana birsey yazilmadi, cop veri var su anda burada. constructor'da ise bu hafizaya class bilgileri yaziliyor. yani aslinda new operatoru eger C yada C++ biliyorsan "malloc" fonksiyonunun islevini goruyor. java daha high level bir dil oldugu icin memory allocation'i ve initialization'i tek bir komutta yapiyor.
"new BillingClient() {}" bu kullanimin nasil calistigini yukarida yazdim, aciklayici olmustur sanirim.
BillingClient billingClient = new BillingClientImpl(); burada yaptigimiz da polymorphisim. Extend edilen class'a base class gibi davraniyoruz. bu nesne ile etkilesime gecenler sadece base class'in ozelliklerini gorebiliyor.
- crucio (09.04.19 13:38:58)
merhaba @crucio verdiğin bilgiler için çok çok teşekkür ediyorum.
BillingClient'tan extend eden baska bir class tanimliyor
cümlen gerçekten beni aydınlattı yazını anlamaya çalışıyorum debug konusunu öğrenmeye çalışıyorum.
Yarın tekrar sorular sormak istiyorum bu bilgileri sindirdikten sonra gerçekten çok bilgili birisin çok teşekkürler.
BillingClient'tan extend eden baska bir class tanimliyor
cümlen gerçekten beni aydınlattı yazını anlamaya çalışıyorum debug konusunu öğrenmeye çalışıyorum.
Yarın tekrar sorular sormak istiyorum bu bilgileri sindirdikten sonra gerçekten çok bilgili birisin çok teşekkürler.
- aristotelesin berberi (09.04.19 15:54:32)
@crucio merhaba nasılsın, bir kaç sorum var cevaplarsan çok fayda sağlayacağım.
1. Sorum extent edilen abstract classın nesnesini oluşturmak ile ilgili;
biz eğer bir abstact classı extent ettiysek onun metotlarını ctrl+o yaparak çağırabiliriz, extent edilmiş bir abstact classın neden nesnesini oluşturmaya ihtiyac duyuyoruz.Abstact class zaten soyut class bunun nesnesini oluşturduğumuzda bu remde yer tutar ve soyut olmaktan çıkar.
Galiba kafamda doğru olduğunu düşündüğüm şöyle bir düşünce var
ben bir classın metotlarını çağırmak için nesnesini oluşturmam gerektiğini düşünüyorum. Bu yanlış mı ?
2. Sorum da bir classı debug edip bir abstac classın şu şekilde oluşturup
new BillingClient() {
@Override
public void myAbstractMethod() {
}
}
sonra debug ettiğimde arka planda nesne oluşturan metotdu bulamadım nasıl bulacağımı bana öğretebilirmisin.
Bu bilgi çok işime yarayacak çünkü.
Ben debug edebiliyorum fakat dediğin metodu bulamıyorum bulamıyorum.
Teşekkürler.
1. Sorum extent edilen abstract classın nesnesini oluşturmak ile ilgili;
biz eğer bir abstact classı extent ettiysek onun metotlarını ctrl+o yaparak çağırabiliriz, extent edilmiş bir abstact classın neden nesnesini oluşturmaya ihtiyac duyuyoruz.Abstact class zaten soyut class bunun nesnesini oluşturduğumuzda bu remde yer tutar ve soyut olmaktan çıkar.
Galiba kafamda doğru olduğunu düşündüğüm şöyle bir düşünce var
ben bir classın metotlarını çağırmak için nesnesini oluşturmam gerektiğini düşünüyorum. Bu yanlış mı ?
2. Sorum da bir classı debug edip bir abstac classın şu şekilde oluşturup
new BillingClient() {
@Override
public void myAbstractMethod() {
}
}
sonra debug ettiğimde arka planda nesne oluşturan metotdu bulamadım nasıl bulacağımı bana öğretebilirmisin.
Bu bilgi çok işime yarayacak çünkü.
Ben debug edebiliyorum fakat dediğin metodu bulamıyorum bulamıyorum.
Teşekkürler.
- aristotelesin berberi (15.04.19 19:15:09)
[]
Android Java Php Post İşlemi
Merhaba ben Android uygulaması yapmaya çalışıyorum fakat üye giriş kontrolünü yapamıyorum volley kullanarak php tarafına post edebiliyorum php ile de mysql veri tabanıma kayıt yapabiliyorum kayıtlı veriyi json çevirerek yine volley kütüphanesini kullanarak uygulamamda çağırabiliyorum ama kullanıcı giriş kontrolü için benim php tarafına post edebildiğim veriyi kullanmam lazım fakat kullanamıyorum misal android de edittext'imi php tarafına post ettim
php tarafında durum bu
$username = $_POST["ad"];
bu veriyi veritabanıma kaydedebiliyorum fakat
print $username;
dediğimde çıktı alamıyorum
bunu html form ile php tarafına post ederek denedim print ediyor fakat android den gelen veriyi veritabanına kaydedebildiği halde print edemiyorum.
teşekkürler.
eğer print edebilsem bu o veriyi kullanabildiğimi gösterecek bende o veriyi veritabanındaki veri ile karşılaştıracağım var ise veya yok ise tekrar uygulamama göndericeğim bu şekilde kontrol edebileceğim.
php tarafında durum bu
$username = $_POST["ad"];
bu veriyi veritabanıma kaydedebiliyorum fakat
print $username;
dediğimde çıktı alamıyorum
bunu html form ile php tarafına post ederek denedim print ediyor fakat android den gelen veriyi veritabanına kaydedebildiği halde print edemiyorum.
teşekkürler.
eğer print edebilsem bu o veriyi kullanabildiğimi gösterecek bende o veriyi veritabanındaki veri ile karşılaştıracağım var ise veya yok ise tekrar uygulamama göndericeğim bu şekilde kontrol edebileceğim.
bir kac hafta once de buna benzer soruyu soran sen miydin? eger yukaridaki kodda $username bos ise demekki android tarafindan bu veriyi yollayamamissin. degeri edittext'ten alabildigini varsayiyorum. kodunu gormedigim icin birsey diyemem ama muhtemelen ya yanlis parametre adi kullaniyorsun, ya post degil get yapiyorsun, yada parametreyi post parametresi olarak degil query parametresi olarak yolluyorsun. kodunu gormeden birsey demek zor. eger daha oncede soruyu soran sensen, sorunlari cok yanlis yerde ariyorsun ve maalesef temel duzeyde ciddi bilgi eksikliklerin var. yapmaya calistigin is cok basit ama haftalardir bununla ugrasiyor gibisin ve soruyu sorma seklinden vs sorunu yada yapmak istedigin seyi tam kavrayamamis gibisin.
son bir oneri daha oncede dedigim gibi volley'i birak. deprecate olmus, guncellenmeyen ve dokumantasyonu eksik bir kutuphane. OkHttp+retrofit kullan.
son bir oneri daha oncede dedigim gibi volley'i birak. deprecate olmus, guncellenmeyen ve dokumantasyonu eksik bir kutuphane. OkHttp+retrofit kullan.
- crucio (30.01.19 22:17:14)
[]
Android Java localhost url hatası / json dosya çekme / https ve http farkı
Merhaba benim bir json dosyam var onu githup hasabıma yükledim ve oradan bir url aldım o url ile http kütüphanelerini kullanarak uygulamamın içinde gösteriyorum şu şekilde
codeshare.io
ama githup yüklediğim json dosyamı xampp kullanarak local hostumdan çekmeye çalıştığımda hata alıyorum
192.168.1.136
yukarıdaki bu url ile bilgisayarımda ki tarayıcıdan girebiliyorum ama kodlarımın içine yazdığımda hata alıyorum neden sizce ne yapmam gerekiyor.
githupdaki json dosyamın urlsi https
local hostumdaki json dosyam da http
bu yüzden mi olmuyor acaba
githup da yüklediğim json dosyam
raw.githubusercontent.com
xampp localhost daki json dosyam
githupdaki json dosyamı çağırdığımda geliyor.
192.168.1.136
codeshare.io
ama githup yüklediğim json dosyamı xampp kullanarak local hostumdan çekmeye çalıştığımda hata alıyorum
192.168.1.136
yukarıdaki bu url ile bilgisayarımda ki tarayıcıdan girebiliyorum ama kodlarımın içine yazdığımda hata alıyorum neden sizce ne yapmam gerekiyor.
githupdaki json dosyamın urlsi https
local hostumdaki json dosyam da http
bu yüzden mi olmuyor acaba
githup da yüklediğim json dosyam
raw.githubusercontent.com
xampp localhost daki json dosyam
githupdaki json dosyamı çağırdığımda geliyor.
192.168.1.136
oncelikle birinci problem 192.168.1.136 bir "private" network adresi, yani bu adrese sadece seni networkune bagli bir kaynaktan erisilebilir. ornegin bu duyuruda bu linke tiklayan kimse bu adrese erisemedi. Android telefon ayni networke bagli ise erisir, ama bagli degil ise erisemez. github linkine erisebiliyorsun cunku github acik bir ip ve domaine sahip.
ikinci problemise bu json dosyanin oldugu sever disaridan bir kaynaga erisim sagliyor mu. Buna CORS yani cross origin resource sharing deniliyor. yani serverde disaridan, senin durumunda android uygulamasindan bu icerige erismesi engellenmis ise bunu erisime acmalisin. tabi bu server ayarlarindan veya orda kullanilan programlama dili ile yapilabilir.
Nasil bir hata mesahi aldigini da yazarsan belki daha somut cevaplar verilebilir.
ikinci problemise bu json dosyanin oldugu sever disaridan bir kaynaga erisim sagliyor mu. Buna CORS yani cross origin resource sharing deniliyor. yani serverde disaridan, senin durumunda android uygulamasindan bu icerige erismesi engellenmis ise bunu erisime acmalisin. tabi bu server ayarlarindan veya orda kullanilan programlama dili ile yapilabilir.
Nasil bir hata mesahi aldigini da yazarsan belki daha somut cevaplar verilebilir.
- emrahday (25.01.19 13:49:58 ~ 13:51:03)
@emrahday hocam merhaba
Android telefon ayni networke bagli ise erisir
sözünüzden anladığım şu uygulamam amilatörde çalışıyor ve bilgisayarla aynı internet ağını kullanıyor burada sorun yok zaten ben bilgisayarımdan girebildiğim url ile emilatörümün tarayıcısından da girmeyi denedim oluyor.
2. şık ise cross origin resource sharing konusu bunu da şöyle açıklayayım ben xmapp serverımdaki php dosyalarıma erişebiliyorum buda dışarıdan erişimi açık olduğunu göstermiyormu.
cross origin resource sharing konusu hakkında bir bilgim yok.
hata mesajıda eğer benim return etmek istediğim değişkeni return etmessediye altına bir return daha koydum onun içinede settext"hata" yazdım bu dönüyor.
sorun zaten url de ama ne yapmam gerekiyor bu sorun için
birde ben google playda bir webview uygulama yayınlamıştım sitem http idi ve açılmıyordu onu https yaptım ve oldu sorun galiba bu ama local host url mi de https yapamamya bunu için bir kod falan yok mudur.
Android telefon ayni networke bagli ise erisir
sözünüzden anladığım şu uygulamam amilatörde çalışıyor ve bilgisayarla aynı internet ağını kullanıyor burada sorun yok zaten ben bilgisayarımdan girebildiğim url ile emilatörümün tarayıcısından da girmeyi denedim oluyor.
2. şık ise cross origin resource sharing konusu bunu da şöyle açıklayayım ben xmapp serverımdaki php dosyalarıma erişebiliyorum buda dışarıdan erişimi açık olduğunu göstermiyormu.
cross origin resource sharing konusu hakkında bir bilgim yok.
hata mesajıda eğer benim return etmek istediğim değişkeni return etmessediye altına bir return daha koydum onun içinede settext"hata" yazdım bu dönüyor.
sorun zaten url de ama ne yapmam gerekiyor bu sorun için
birde ben google playda bir webview uygulama yayınlamıştım sitem http idi ve açılmıyordu onu https yaptım ve oldu sorun galiba bu ama local host url mi de https yapamamya bunu için bir kod falan yok mudur.
- aristotelesin berberi (25.01.19 14:10:13 ~ 14:10:23)
koda baktigimda su kisimda aldigin hata yazdiriliyor. buradaki hata (Exception) problemin ne oldugunu mutlaka soyler.
} catch (Exception e) {
e.printStackTrace();
}
http veya https olmasi da muhtemel bir durum, server sadece https kabul ediyor da olabilir. bunun kesin nedeni ancak bu Exception neyi ifade ediyor ona bakarak cozulebilir.
} catch (Exception e) {
e.printStackTrace();
}
http veya https olmasi da muhtemel bir durum, server sadece https kabul ediyor da olabilir. bunun kesin nedeni ancak bu Exception neyi ifade ediyor ona bakarak cozulebilir.
- emrahday (25.01.19 14:17:34)
xampp root path üzerinden jsonhttp.json istiyorsun, bu biraz garip geldi.
genelde xampp altında site dizinleri (domain gibi davranan) olur ve dosya isminin önüne bu dizin ismi yazılır.
örnek: 192.168.1.136/site_ismi/dosya_ismi
Senin dosyan xampp'ın altında tam olarak nerede, hangi dizinlerin içerisinde duruyor?
Bir de "192.168.1.136" adresini browser'dan çağırdığında karşına ne geliyor?
genelde xampp altında site dizinleri (domain gibi davranan) olur ve dosya isminin önüne bu dizin ismi yazılır.
örnek: 192.168.1.136/site_ismi/dosya_ismi
Senin dosyan xampp'ın altında tam olarak nerede, hangi dizinlerin içerisinde duruyor?
Bir de "192.168.1.136" adresini browser'dan çağırdığında karşına ne geliyor?
- velhasilkelam (25.01.19 14:23:01 ~ 14:23:24)
emrahday hocam merhaba
} catch (Exception e) {
e.printStackTrace();
}
return "hata"; burası dönüyor
uygulama ilk açıldığındaki ekran görüntüsü
ibb.co
uygulama local host linki ile çalıştığında ve butona basıldığındaki ekran görüntüsü
ibb.co
uygulama githup linki ile çalıştığnda ve butona basıldığındaki ekran görüntüsü
ibb.co
} catch (Exception e) {
e.printStackTrace();
}
return "hata"; burası dönüyor
uygulama ilk açıldığındaki ekran görüntüsü
ibb.co
uygulama local host linki ile çalıştığında ve butona basıldığındaki ekran görüntüsü
ibb.co
uygulama githup linki ile çalıştığnda ve butona basıldığındaki ekran görüntüsü
ibb.co
- aristotelesin berberi (25.01.19 14:49:19)
@velhasilkelam hocam merhaba
192.168.1.136
bu adrese tıkladığımdaki ekran görüntüsü
ibb.co
yani json dosyam açılıyor
192.168.1.136
bu adrese tıkladığımdaki ekran görüntüsü
ibb.co
yani json dosyam açılıyor
- aristotelesin berberi (25.01.19 14:52:52)
@emrahday
@velhasilkelam
hocalarım sorun galiba çözüldü
stackoverflow.com
sorun emilatörden kaynaklanıyormus kendi android telefonumu devoleper modunda usp ile bağlayıp çalıştırdım oldu çok teşekkür ediyorum.
@velhasilkelam
hocalarım sorun galiba çözüldü
stackoverflow.com
sorun emilatörden kaynaklanıyormus kendi android telefonumu devoleper modunda usp ile bağlayıp çalıştırdım oldu çok teşekkür ediyorum.
- aristotelesin berberi (25.01.19 15:23:31)
[]
Android Volley Kütüphanesi Metodları
Merhaba bir süredir mobil uygulama çıkartmaya çalışıyorum ama 5 gündür ilerleyemiyorum çünkü edittext'imi php tarafına post edemiyorum ErrorListener'a düşüyor bende nerede hata yaptığımı anlayamama sebebi mi volley kütüphanesine hakim olmamamdan kaynaklandığını düşünerek şöyle bir fikir geldi aklıma volley kütüphanesi mettodlardan oluşuyor bende kullandığım ama ne işe yaradığını bilmediğimiz metodların ne işe yaradığını öğrenirsen volley kütüphanesine hakim olurum diye düşündüm sizlerden ricam öğrenmek istediğim aşağıdaki metodların amacını bana söylemeniz teşekkürler.
çalışmayan metodum burada da yer alıyor incelemek ve nerede hata yaptığımı söylemek isterseniz çok sevinirim.
stackoverflow.com
1. public void onResponse(String response)
2. public void onErrorResponse(VolleyError error) (hata mesajını bastırmak için diye biliyorum.)
3. protected Map<String, String>
4. getParams()
5. throws
çalışmayan metodum burada da yer alıyor incelemek ve nerede hata yaptığımı söylemek isterseniz çok sevinirim.
stackoverflow.com
1. public void onResponse(String response)
2. public void onErrorResponse(VolleyError error) (hata mesajını bastırmak için diye biliyorum.)
3. protected Map<String, String>
4. getParams()
5. throws
github.com
1- onResponse : bir response döndüğünde çağrılır.
2 -public void onErrorResponse(VolleyError error) bir hata olduğunda ilgili hata kodu ile çağrılan method. (hata mesajı olmayabilir!)
3- gelecegiyazanlar.turkcell.com.tr
4- POST ya da PUT requestte kullanılacak parametre listesini döndüren method
5- okanuzun.com
1- onResponse : bir response döndüğünde çağrılır.
2 -public void onErrorResponse(VolleyError error) bir hata olduğunda ilgili hata kodu ile çağrılan method. (hata mesajı olmayabilir!)
3- gelecegiyazanlar.turkcell.com.tr
4- POST ya da PUT requestte kullanılacak parametre listesini döndüren method
5- okanuzun.com
- oz suser (22.01.19 16:22:14)
hata olarak ne yazıyor?
- contavolta (22.01.19 16:28:13)
@contavolta
efendim method şu şekilde
public void btntou(View view){
StringRequest request=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), "doğru", Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "HATALI", Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<String, String>();
params.put("ad", edittextone.getText().toString());
params.put("soyad", edittexttou.getText().toString());
return params;
}
};
requestQueue.add(request);
}
ErrorListener'a düşüyor.Php tarafına post edemiyorum.
efendim method şu şekilde
public void btntou(View view){
StringRequest request=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), "doğru", Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "HATALI", Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<String, String>();
params.put("ad", edittextone.getText().toString());
params.put("soyad", edittexttou.getText().toString());
return params;
}
};
requestQueue.add(request);
}
ErrorListener'a düşüyor.Php tarafına post edemiyorum.
- aristotelesin berberi (22.01.19 17:02:41)
@oz suser efendim cevaplarınızı inceliyorum teşekkürler. fakat onResponse response döndüğünde çağırılıyor demişsiniz çağırılıyor da ne yapıyor yapacağı şeyi içine mi yazmamız lazım ve response dönmek ne demek söylermisin. teşekkür ediyorum.
- aristotelesin berberi (22.01.19 17:05:49)
simdi http uzerinden bir adress(url) cagiriyorsun bu ornekte. yani bir internet adresine bir bilgiyi "http post" yapiyorsun. volley kutuphanesi de bu "http" islemlerini kolaylastirmak icin kullanilan bir kutuphane. bu http islemlerine "request" denir. bir adrese post veya get protokolunu kullanrak http request yarparsin o adress de sana cevap verir yani "response" yapar.
senin ornek kodunda da POST yontemi ile verdigin url ye bir http request yapiyorsun, peki bunu yaptiginda ne oluyor karsi taraftan yani senin php server dan bir response donuyor. eger donen response basarili olsaydi onResponse methodu cagirilirdi ve bu methods bir string bilgisi gonderilirdi. Artik on responsda yapmak istedigin isleri yapardin. On response icinde eger http request basarili olursa ne yapacaksin o islemleri yazarsin. ama bu durumda bir hata olutor ve onErrorResponse methodu cagriliyor ve "error" bilgisi donuyor, yani burada artik bir hata aldin hata durumunda ne yapacak o kodu yazacaksin. Yani VolleyError objesi senin aldigin hata ile ilgili bilgiyi tutuyor. bu bilgi bir hata kodu olablir, ve hata ile ilgili aciklama olabilir. Yani senin incelemen gereken sey "VolleyError error" objesi, bak bakalim icinde ne var, niye hata vermis.
Olasi problemler, POST request yaptigin adress (URL) yanlis olabilir, bu post bilgisi icindeki "Body" yani gonderdigin bilgi duzgun formatta olmayabilir, firewall bloklayabilir, CORS problemi olabilir yani olasi problemler o kadar cok ki koda bakarak bunu anlamak guc. Ama bu hatanin nedeni senin log dosyanda, VolleyError objende, ya da kullandigin IDE nin terminal loglarinda mevcuttur kesinlikle, onlari incelemen gerekir.
Sordugun soruda 3, 5 ise tamamen java programlama dili ile ilgili konular, android veya Volley kutuphanesi ile ilgili degil. Ayrica bunlar cok genis konular. kisaca 3. sorudaki Map javada kullanilan bir data yapisi, icinde iki tane string key value barindiriyor. 5. sorudaki throws ise javada bir hata firlatma yontemi.
Volley kutuphanesini ogrenmeden once, sana onerecegin ogrenme yontemi sunlardir
1. Http temelleri
2. Java programlama dili temelleri
3. Android API temelleri
4. Volley kutuphanesi
bu adimlari gitmezsen volley kutuphanesini anlaman guc olabilir.
senin ornek kodunda da POST yontemi ile verdigin url ye bir http request yapiyorsun, peki bunu yaptiginda ne oluyor karsi taraftan yani senin php server dan bir response donuyor. eger donen response basarili olsaydi onResponse methodu cagirilirdi ve bu methods bir string bilgisi gonderilirdi. Artik on responsda yapmak istedigin isleri yapardin. On response icinde eger http request basarili olursa ne yapacaksin o islemleri yazarsin. ama bu durumda bir hata olutor ve onErrorResponse methodu cagriliyor ve "error" bilgisi donuyor, yani burada artik bir hata aldin hata durumunda ne yapacak o kodu yazacaksin. Yani VolleyError objesi senin aldigin hata ile ilgili bilgiyi tutuyor. bu bilgi bir hata kodu olablir, ve hata ile ilgili aciklama olabilir. Yani senin incelemen gereken sey "VolleyError error" objesi, bak bakalim icinde ne var, niye hata vermis.
Olasi problemler, POST request yaptigin adress (URL) yanlis olabilir, bu post bilgisi icindeki "Body" yani gonderdigin bilgi duzgun formatta olmayabilir, firewall bloklayabilir, CORS problemi olabilir yani olasi problemler o kadar cok ki koda bakarak bunu anlamak guc. Ama bu hatanin nedeni senin log dosyanda, VolleyError objende, ya da kullandigin IDE nin terminal loglarinda mevcuttur kesinlikle, onlari incelemen gerekir.
Sordugun soruda 3, 5 ise tamamen java programlama dili ile ilgili konular, android veya Volley kutuphanesi ile ilgili degil. Ayrica bunlar cok genis konular. kisaca 3. sorudaki Map javada kullanilan bir data yapisi, icinde iki tane string key value barindiriyor. 5. sorudaki throws ise javada bir hata firlatma yontemi.
Volley kutuphanesini ogrenmeden once, sana onerecegin ogrenme yontemi sunlardir
1. Http temelleri
2. Java programlama dili temelleri
3. Android API temelleri
4. Volley kutuphanesi
bu adimlari gitmezsen volley kutuphanesini anlaman guc olabilir.
- emrahday (22.01.19 17:19:53 ~ 17:24:28)
@emrahday hocam size geri dönüş yapacağım şimdi anlamaya çalışıyorum söylediklerinizi teşekkürler.
- aristotelesin berberi (22.01.19 21:17:54)
-oncelikle paylastigin kod kismindan sorunu anlamak mumkun degil. soylendigi gibi request'in fail ediyor. bunun bir suru sebebi olabilir. request yaptigin url post metodunu kabul etmiyor olabilir, parametrelerin eksik/hatali olabilir. sunucu tarafinda hata olabilir.
-ikincisi volley kutuphanesi deprecate oldu. volley ile ugrasma, OkHttp ve retrofit kutuphanelerini kullan. hem dokumantasyonlari daha iyi hem daha populer olduklari icin daha fazla kaynak bulabilirsin hem de daha iyi ve daha esnek kutuphaneler.
-son olarak da postman uygulamasina bak, postman yaptigin requestleri replicate edip donen hata mesajlarini guzelce gorebilirsin.
-ikincisi volley kutuphanesi deprecate oldu. volley ile ugrasma, OkHttp ve retrofit kutuphanelerini kullan. hem dokumantasyonlari daha iyi hem daha populer olduklari icin daha fazla kaynak bulabilirsin hem de daha iyi ve daha esnek kutuphaneler.
-son olarak da postman uygulamasina bak, postman yaptigin requestleri replicate edip donen hata mesajlarini guzelce gorebilirsin.
- crucio (23.01.19 01:55:55)
@crucio
Hocam merhaba geç cevap vermemin sebebi bir süredir yazdıklarınız ile alakadar olmamdır.
Öncelikle teşekkür ediyorum volley kütüphanesini bıraktım ama neden volley kullanım dışı oldu onu da merek ediyorum
ve söylediğiniz kütüphaneleri anlamaya çalışırken sadi eren şekerin şu videosuna
https*
rastladım videoda bir json dosyasını android'in içinden çağırıyor bende denedim ve çalıştı kodlarım burada
codeshare.io
fakat ben json dosyamı githup urlsi ile çağırdım bunun yerine xampp ile local hostdaki json dosyamı url şeklinde yazdığımda hata alıyorum
urlyi yazarken ip adresimi ve / dosya uzantımı yazıyorum ama olmuyor
ne yapmam gerekiyor
benim localdaki json dosyamı çağırmam için farklı bir android izni gerekiyor olabilir mi
internet iznim var url de de yanlışlık yok aynı urlyi tarayıcıda açabiliyorum teşekkürler.
Hocam merhaba geç cevap vermemin sebebi bir süredir yazdıklarınız ile alakadar olmamdır.
Öncelikle teşekkür ediyorum volley kütüphanesini bıraktım ama neden volley kullanım dışı oldu onu da merek ediyorum
ve söylediğiniz kütüphaneleri anlamaya çalışırken sadi eren şekerin şu videosuna
https*
rastladım videoda bir json dosyasını android'in içinden çağırıyor bende denedim ve çalıştı kodlarım burada
codeshare.io
fakat ben json dosyamı githup urlsi ile çağırdım bunun yerine xampp ile local hostdaki json dosyamı url şeklinde yazdığımda hata alıyorum
urlyi yazarken ip adresimi ve / dosya uzantımı yazıyorum ama olmuyor
ne yapmam gerekiyor
benim localdaki json dosyamı çağırmam için farklı bir android izni gerekiyor olabilir mi
internet iznim var url de de yanlışlık yok aynı urlyi tarayıcıda açabiliyorum teşekkürler.
- aristotelesin berberi (24.01.19 18:08:22)
[]
Android'de edittext'di php tarafına post edemiyorum Lütfen yardım edin.
Merhaba 3 gündür uğraşıyorum ama yapamadım anlamaya çalıştıkça daha karmaşıklaştı acaba nerede hata yapıyorum.
MainActivity.Java
(bkz: package com.example.vezir.mysql_one;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edittextone,edittexttou,edittextthree;
String url = "localhost";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn);
edittextone = findViewById(R.id.edittextone);
edittexttou = findViewById(R.id.edittexttou);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
verileriyolla();
}
});
}
public void verileriyolla(){
final String username=edittextone.getText().toString();
final String password=edittexttou.getText().toString();
if(username.equals("")==false && password.equals("")==false)
{
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
String url = "localhost"; // Post atılan adres.
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "BAŞARILI", Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "HATALI", Toast.LENGTH_LONG).show();
}
}
) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("password", password);
return params;
}
};
queue.add(postRequest);
}
else
{
Toast.makeText(MainActivity.this,"Lütfen Gerekli Alanları Doldurun",Toast.LENGTH_LONG).show();
}
}
}
)bknz parantezi
Php Kısmı
<?php
$username=$_POST["username"];
$password=$_POST["password"];
try {
$db = new PDO("mysql:host=localhost;dbname=androidthree", "root", "");
print "başarılı".$username.$password;
} catch ( PDOException $e ){
print $e->getMessage();
}
$ekle=$db->query("insert into fitnesstthree(ad,soyad) values('$username','$password')");
if($ekle){
echo "Başarıyla Eklendi.";
}else{
echo "Eklenemedi.";
}
?>
dostlarım php ve sorun yok form ile index oluşturup post ettim ve veri tabanına kayıt yaptım sorun android tarafında ki edittext post edilmiyor.
Volley küübhanesine hakim değilim türkçe kaynak bulamıyorum aykut taşdelenin kitabında bile volley yok kaynak tavsiye edermisiniz. teşekkürler.
Birde Volley ile Rest Api konusunu öğrenmeye çalışırken anlamadığım 2 method var onlarıda sormak istiyorum.
getSimpleName();
getInstance();
Android ile php kullanarak mysql veri eklemeyi çok karışık anlatıyorlar. sadece bu sitede ki örneği anlayabildim o da button aktif etmemiş onclick listener kullanmamış onu da ben ekledim yani aşşağıdaki örneği yapmaya çalışıyorum aslında.
delimuhendis.info
MainActivity.Java
(bkz: package com.example.vezir.mysql_one;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edittextone,edittexttou,edittextthree;
String url = "localhost";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn);
edittextone = findViewById(R.id.edittextone);
edittexttou = findViewById(R.id.edittexttou);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
verileriyolla();
}
});
}
public void verileriyolla(){
final String username=edittextone.getText().toString();
final String password=edittexttou.getText().toString();
if(username.equals("")==false && password.equals("")==false)
{
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
String url = "localhost"; // Post atılan adres.
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "BAŞARILI", Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "HATALI", Toast.LENGTH_LONG).show();
}
}
) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("password", password);
return params;
}
};
queue.add(postRequest);
}
else
{
Toast.makeText(MainActivity.this,"Lütfen Gerekli Alanları Doldurun",Toast.LENGTH_LONG).show();
}
}
}
)bknz parantezi
Php Kısmı
<?php
$username=$_POST["username"];
$password=$_POST["password"];
try {
$db = new PDO("mysql:host=localhost;dbname=androidthree", "root", "");
print "başarılı".$username.$password;
} catch ( PDOException $e ){
print $e->getMessage();
}
$ekle=$db->query("insert into fitnesstthree(ad,soyad) values('$username','$password')");
if($ekle){
echo "Başarıyla Eklendi.";
}else{
echo "Eklenemedi.";
}
?>
dostlarım php ve sorun yok form ile index oluşturup post ettim ve veri tabanına kayıt yaptım sorun android tarafında ki edittext post edilmiyor.
Volley küübhanesine hakim değilim türkçe kaynak bulamıyorum aykut taşdelenin kitabında bile volley yok kaynak tavsiye edermisiniz. teşekkürler.
Birde Volley ile Rest Api konusunu öğrenmeye çalışırken anlamadığım 2 method var onlarıda sormak istiyorum.
getSimpleName();
getInstance();
Android ile php kullanarak mysql veri eklemeyi çok karışık anlatıyorlar. sadece bu sitede ki örneği anlayabildim o da button aktif etmemiş onclick listener kullanmamış onu da ben ekledim yani aşşağıdaki örneği yapmaya çalışıyorum aslında.
delimuhendis.info
Örneğin bir tık karışık. Bir de senin kod asenkron (async) çalışıyor anladığım kadar ile.
Genelde mobil için daha tercih edilir bir yöntem tabi. Ama ilk adım için daha basit bir şey ile sonuç almayı başarabilirsen onun üzerinden gelişim sağlarsın diye düşünüyorum.
İnternetten bulduğum senkron (sync) örneği basit bir dil ile anlatmaya çalıştım.
Not: Öncelik bu işin metodolojisini öğrenmeni tavsiye ederim.
Örnek olarak http çalışma yapısını daha iyi kavrarsan hangi dili kullanırsan kullan yapman gereken şeyi bildiğin için onu yapacak kod'a erişimin daha hızlı olacaktır.
public void postData() {
// Http bağlantıyı oluştur
HttpClient httpclient = new DefaultHttpClient();
// Http Post methodu ile gönderim yapacağın için HttpPost sınıfını kullan
HttpPost httppost = new HttpPost("localhost");
try {
// Post methodu ile göndereceğin parametreleri oluştur
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "göndereceğin kullanıcı adı"));
nameValuePairs.add(new BasicNameValuePair("password", "göndereceğin şifre"));
//Oluşturduğun parametreleri yine üstte oluşturduğun httpPost instance'a dahil et
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// En üsste oluşturuduğun bağlantının içerisine httpost'u koyarak gönder.
HttpResponse response = httpclient.execute(httppost);
//Eğer php'den bir geri dönöş bekliyorsan HttpResponse response içerisinde olacak
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
Genelde mobil için daha tercih edilir bir yöntem tabi. Ama ilk adım için daha basit bir şey ile sonuç almayı başarabilirsen onun üzerinden gelişim sağlarsın diye düşünüyorum.
İnternetten bulduğum senkron (sync) örneği basit bir dil ile anlatmaya çalıştım.
Not: Öncelik bu işin metodolojisini öğrenmeni tavsiye ederim.
Örnek olarak http çalışma yapısını daha iyi kavrarsan hangi dili kullanırsan kullan yapman gereken şeyi bildiğin için onu yapacak kod'a erişimin daha hızlı olacaktır.
public void postData() {
// Http bağlantıyı oluştur
HttpClient httpclient = new DefaultHttpClient();
// Http Post methodu ile gönderim yapacağın için HttpPost sınıfını kullan
HttpPost httppost = new HttpPost("localhost");
try {
// Post methodu ile göndereceğin parametreleri oluştur
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "göndereceğin kullanıcı adı"));
nameValuePairs.add(new BasicNameValuePair("password", "göndereceğin şifre"));
//Oluşturduğun parametreleri yine üstte oluşturduğun httpPost instance'a dahil et
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// En üsste oluşturuduğun bağlantının içerisine httpost'u koyarak gönder.
HttpResponse response = httpclient.execute(httppost);
//Eğer php'den bir geri dönöş bekliyorsan HttpResponse response içerisinde olacak
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
- velhasilkelam (19.01.19 22:39:54 ~ 23:07:12)
@velhasilkelam dostum teşekkür ediyorum bu yöntem daha basit geldi bunu anlamaya çalışıcam post edebilirsem php tarafına bu yöntemi kullanırım volley kütüphanesini anlayamadım zordu sen volley kütüphanesini biliyor musun ? ve nasıl öğrendin sence de zor mu ?
- aristotelesin berberi (20.01.19 15:51:11)
Volley Google'ın projesi. Başarılı bir http client ama ilk adım için biraz karışık.
Sonuç olarak arayacağın şey yine böyle bir kütüphane olacak.
İhtiyaçların seni zaten gerekli yere yönlendirecek; Volley veya kafanı ilk planda karıştıran şeyler için çok acele etme.
Basit olsun ama çalışsın :)
Sonuç olarak arayacağın şey yine böyle bir kütüphane olacak.
İhtiyaçların seni zaten gerekli yere yönlendirecek; Volley veya kafanı ilk planda karıştıran şeyler için çok acele etme.
Basit olsun ama çalışsın :)
- velhasilkelam (21.01.19 11:14:17)
@velhasilkelam dostum volley kütüphanesinin bu metodlarının ne işe yaradığını biliyormusun.
1. public void onResponse(String response)
2. public void onErrorResponse(VolleyError error) (hata mesajını bastırmak için diye biliyorum.)
3. protected Map<String, String>
4. getParams()
5. throws
6. AuthFailureError
7.Map<String,String> params=new HashMap<String, String>();
8. params.put
1. public void onResponse(String response)
2. public void onErrorResponse(VolleyError error) (hata mesajını bastırmak için diye biliyorum.)
3. protected Map<String, String>
4. getParams()
5. throws
6. AuthFailureError
7.Map<String,String> params=new HashMap<String, String>();
8. params.put
- aristotelesin berberi (22.01.19 15:21:22)
[]
java default constructor kullanmasak olur mu ?
efendim merhabalar ben şunu anlayamadım yardımcı olursan çok rahatlarım.
şimdi bir class nesnesini oluşturmak için new operatörü ile default constructor oluşturabilirim
birde new operatörü kullanmadan class ismi ile aynı bir constructor oluşturabiliriz
2 şekildede class'ın nesnesi oluşuyorsa yani bellekte yer ayırılıyorsa default constructor kullanmayalım ne gerek var direk class ismi ile aynı bir constructor oluşturalım (parametreli veya parametresiz) olsun bitsin olmaz mı ? teşekkür ediyorum.
edit cevap : örnek yok
şimdi bir class nesnesini oluşturmak için new operatörü ile default constructor oluşturabilirim
birde new operatörü kullanmadan class ismi ile aynı bir constructor oluşturabiliriz
2 şekildede class'ın nesnesi oluşuyorsa yani bellekte yer ayırılıyorsa default constructor kullanmayalım ne gerek var direk class ismi ile aynı bir constructor oluşturalım (parametreli veya parametresiz) olsun bitsin olmaz mı ? teşekkür ediyorum.
edit cevap : örnek yok
zaten default constructor olusturmana gerek yok ki, sen constructor yazmasan bile arkada derleme zamaninda default constructor parametresiz sekilde olusturulur. ama eger sen dersen ki default olusturulan benim isime yaramaz, ben kendim olusturacam o zaman arkada default olani olusturmaz.
- emrahday (02.01.19 11:36:35)
@emrahday merhaba yani new operatörü ile default constructor oluşturmaya gerek yok değil mi ?
biz parametresiz constructor oluşturduğumuz da zaten arka pilanda default constructor oluşuyor diyorsun ve parametreli 2. bir constructor oluşturduğunda da default constructor iptal oluyor diyorsun değil mi doğru mu anladım ?
isim isism1 = new isim(); buna gerek yok eğer
bunu yaptıysak
public isim (){ parametresiz
}
public isim (int sayi){parametreli
}
doğrumu anladım ? teşekkürler.
biz parametresiz constructor oluşturduğumuz da zaten arka pilanda default constructor oluşuyor diyorsun ve parametreli 2. bir constructor oluşturduğunda da default constructor iptal oluyor diyorsun değil mi doğru mu anladım ?
isim isism1 = new isim(); buna gerek yok eğer
bunu yaptıysak
public isim (){ parametresiz
}
public isim (int sayi){parametreli
}
doğrumu anladım ? teşekkürler.
- aristotelesin berberi (02.01.19 11:47:38)
@yazarken ellerini birakan herif
evet aradığım cevap Overloading' miş teşekkür ediyorum ben bu konuyu biraz araştıracağım size ekşi sözlükten java ile ilgili sorular sorup bilginizden yararlanmak isterim uygun görürseniz.
ama tekrar emin olmak istiyorum
aşağıdaki Overloading yöntem oluyor
public isim (){ parametresiz
}
public isim (int sayi){parametreli
}
peki Overloading yaptığımızda
aşağıdakine gerek olmuyor değil mi ?
isim isism1 = new isim(); -----Overloading yaptıysak buna gerek yok diyebilirmiyiz ?
evet aradığım cevap Overloading' miş teşekkür ediyorum ben bu konuyu biraz araştıracağım size ekşi sözlükten java ile ilgili sorular sorup bilginizden yararlanmak isterim uygun görürseniz.
ama tekrar emin olmak istiyorum
aşağıdaki Overloading yöntem oluyor
public isim (){ parametresiz
}
public isim (int sayi){parametreli
}
peki Overloading yaptığımızda
aşağıdakine gerek olmuyor değil mi ?
isim isism1 = new isim(); -----Overloading yaptıysak buna gerek yok diyebilirmiyiz ?
- aristotelesin berberi (02.01.19 12:26:59)
verdigin ornekte bikac kafa karisikligini gideryim;
"new" anahtar kelimse bir class dan obje olustrmak icin kullanir. Bu objeyi olustururken de o class icinde tanimli constructor kullanir.
public class Isim {
public Isim(){
}
}
yani bu ornekte "new Isim()" dediginde isim classina gider ve isim() constructorunu kullanarak bir obje olusturur. (Not: consructor ve class birebir ayni isme sahip olmali ve ikisinde de ilk harf hep buyuk olmali. )
constructor iki turlu tanimlanir, acik(explicit) veya kapali(implicit) seklinde. yani sen bu sekilde
public class Isim {
}
bir class yazdin, ama hicbir constructor yazmadin icine, java compiler derleme sirasinda otomatik olarak default constructor olusturur ve senin classini bu sekilde cevirir.
public class Isim {
public Isim(){
}
}
ama dilersen sen bu implicit(kapali) yontemi degilde acik acik (explicit) sekilde kendinde yazabilirsin. bu durumda java compiler derleme sirasinda default constructor olusturmaktan vazgececektir.
bir de bazi durumlarda mevcut constructor sana yeterli olmayabilir. ornegin yeni bir isim objesi olusturacaksin ama bu isim objesi bir rakam almak durumunda ve o rakamai gondermelisin.
new Isim(123); gibi.
yani sen Isim classini cagiracaksin ama constructror bir parametre alamali. bu durumda mevct constructor icin "overload" constructor yazmalisin. Ornegin;
public class Isim {
public Isim(){}
public Isim(int sayi){}
}
yani artik Isim sinifi iki tane constructor sahibi olmustur, overload yapilmistir. artik obje yaratirken ister new Isim(); istersen de new Isim(123) cagirarak obje olusturabilirsin.
yani overload yapsan da yapmasan da "new" anahtar kelimesine ihtiyacin var. dikkat et bu yontem "overload", genelde "override" ve "overload" birbirine karisitirilir, is gorusmelerinin populer sorusudur overload ve override farki.
Peki new anahter kelimesi ne gibi durumlarda kullanilmaz. Ornegin "Factory pattern" denilen bir sablon sekli vardir. bu bir static method yardimi ile bir obje doner. bu durumda static methodun oldugu sinifi new anahtar kelimesi ile cagirman gerekmez. Ornegin;
public class Isim {
public static Isim getIsim (){
return new Isim();
}
}
dikkat et burada bir static getIsim diye method var. bu bir method, constructor degil. ama bu method bir new anahtar kelimesi ile Isim objesi olusturup donuyor. eger boyle bir factory methodun var ise
Isim isim = Isim.getIsim();
seklinde hicbir new anahtar kelimesi kullanmadan objeyi alabilirsin, cunku static factory methdo o objeyi icindeki new ile olusturup sana donecektir. sana ise static sinifi cagirmak duser. static siniflar hicbir obje olusturmadan cagirilabilir, yani new anahtar kelimesine ihtiyac yoktur.
ozetle java object oriented bir dil oldugu icin bir obje olusturmak icin mutlaka bir yerde "new" anahtar kelimesi yazmak durumundasin. amam bu kullandigin paterne gore bir static factory method icinde bir defa yazarak da olur, ya da her bir obje olusturmak icin ayri ayri yazarak ta olur.
"new" anahtar kelimse bir class dan obje olustrmak icin kullanir. Bu objeyi olustururken de o class icinde tanimli constructor kullanir.
public class Isim {
public Isim(){
}
}
yani bu ornekte "new Isim()" dediginde isim classina gider ve isim() constructorunu kullanarak bir obje olusturur. (Not: consructor ve class birebir ayni isme sahip olmali ve ikisinde de ilk harf hep buyuk olmali. )
constructor iki turlu tanimlanir, acik(explicit) veya kapali(implicit) seklinde. yani sen bu sekilde
public class Isim {
}
bir class yazdin, ama hicbir constructor yazmadin icine, java compiler derleme sirasinda otomatik olarak default constructor olusturur ve senin classini bu sekilde cevirir.
public class Isim {
public Isim(){
}
}
ama dilersen sen bu implicit(kapali) yontemi degilde acik acik (explicit) sekilde kendinde yazabilirsin. bu durumda java compiler derleme sirasinda default constructor olusturmaktan vazgececektir.
bir de bazi durumlarda mevcut constructor sana yeterli olmayabilir. ornegin yeni bir isim objesi olusturacaksin ama bu isim objesi bir rakam almak durumunda ve o rakamai gondermelisin.
new Isim(123); gibi.
yani sen Isim classini cagiracaksin ama constructror bir parametre alamali. bu durumda mevct constructor icin "overload" constructor yazmalisin. Ornegin;
public class Isim {
public Isim(){}
public Isim(int sayi){}
}
yani artik Isim sinifi iki tane constructor sahibi olmustur, overload yapilmistir. artik obje yaratirken ister new Isim(); istersen de new Isim(123) cagirarak obje olusturabilirsin.
yani overload yapsan da yapmasan da "new" anahtar kelimesine ihtiyacin var. dikkat et bu yontem "overload", genelde "override" ve "overload" birbirine karisitirilir, is gorusmelerinin populer sorusudur overload ve override farki.
Peki new anahter kelimesi ne gibi durumlarda kullanilmaz. Ornegin "Factory pattern" denilen bir sablon sekli vardir. bu bir static method yardimi ile bir obje doner. bu durumda static methodun oldugu sinifi new anahtar kelimesi ile cagirman gerekmez. Ornegin;
public class Isim {
public static Isim getIsim (){
return new Isim();
}
}
dikkat et burada bir static getIsim diye method var. bu bir method, constructor degil. ama bu method bir new anahtar kelimesi ile Isim objesi olusturup donuyor. eger boyle bir factory methodun var ise
Isim isim = Isim.getIsim();
seklinde hicbir new anahtar kelimesi kullanmadan objeyi alabilirsin, cunku static factory methdo o objeyi icindeki new ile olusturup sana donecektir. sana ise static sinifi cagirmak duser. static siniflar hicbir obje olusturmadan cagirilabilir, yani new anahtar kelimesine ihtiyac yoktur.
ozetle java object oriented bir dil oldugu icin bir obje olusturmak icin mutlaka bir yerde "new" anahtar kelimesi yazmak durumundasin. amam bu kullandigin paterne gore bir static factory method icinde bir defa yazarak da olur, ya da her bir obje olusturmak icin ayri ayri yazarak ta olur.
- emrahday (02.01.19 14:19:27 ~ 14:21:59)
@emrahday
sayende gerçekten şimdi anladım galiba şöyle ki new operatörü ile sınıfın nesnesi oluşur bu şu demek
bu bellekte nereye kayıt edileceğini söyler.
constructor ise belleğe ne kaydedileceğini söyle ( String int vs.)
new operatörü ile nesne oluştuğunda constructor çağırır ve constructor'dakiler belleğe kaydedilir.
doğru mu anladım ?
teşekkür ediyorum gerçekten.
sayende gerçekten şimdi anladım galiba şöyle ki new operatörü ile sınıfın nesnesi oluşur bu şu demek
bu bellekte nereye kayıt edileceğini söyler.
constructor ise belleğe ne kaydedileceğini söyle ( String int vs.)
new operatörü ile nesne oluştuğunda constructor çağırır ve constructor'dakiler belleğe kaydedilir.
doğru mu anladım ?
teşekkür ediyorum gerçekten.
- aristotelesin berberi (02.01.19 15:43:20)
evet aynen. biraz daha acayim;
class bir yemek kitabi tarifindeki yemek tarifi gibidir. yemegin nasil yapilacagini, icine neler konulacagini ve nasil hazilanacagini tanimlar. blueprint yani sablondur. o yemegi yaparken yani objeyi olustururken o objede ne olacak onu tanimlar.
constructor ise o tarifi ne katacaksin onu belirler. ornegin makarna tarfin (class makarna{}) olsun, simdi makarna yapacaksin ama neyli yapacaksin, iste o zaman constructor devreye girer. constructora bir malzeme katmayabilirsin (default constructor) ya da malzeme katabilirsin (makarna(string malzeme){}).
bir classdan obje uretmekde constructor yardimi ile olur. 'new' anahtari o class in constructorunu cagirmani saglar. ornegin makarna tarifini yazdin (class makarna), sonra o makarna tarifinde ister malzemeli ister malzemesiz constructor yazdin. artik makarna yapma vakti geldi.
Makarna sadeMakarna = new Makarna();
dediginde o makarna tarifini (class) default constructor ile calistirir ve makarnayi yapar. artik makarna hafizada yer kaplar. default oldugu icinde icine malzeme katmamisindir.
Makarna salcaliMakarna = new Makarna("salca");
Makarna peynirliMakarna = new Makarna("peynir");
ya da salcali ve peynirli malzemeli yapabilirsin, eger malzeme alan constructorun var ise. sade makarna icin java otomatik olusturur (default constructor). ama eger malzemeli yapacaksan senin tanimlaman gerekir (constructor overloading) elbette malzemeli makarna objesi hafizada biraz daha fazla yer kaplar. ve olusturdugun her bir obje yani sade, salcali ve peynirli makarna hafizada ayri ayri yer kaplar, yani birini degistirince digeri degismez, tamamen bagimsiz objelerdir ve ram uzerinde farkli hafiza bolumlerinde tutulur.
class bir yemek kitabi tarifindeki yemek tarifi gibidir. yemegin nasil yapilacagini, icine neler konulacagini ve nasil hazilanacagini tanimlar. blueprint yani sablondur. o yemegi yaparken yani objeyi olustururken o objede ne olacak onu tanimlar.
constructor ise o tarifi ne katacaksin onu belirler. ornegin makarna tarfin (class makarna{}) olsun, simdi makarna yapacaksin ama neyli yapacaksin, iste o zaman constructor devreye girer. constructora bir malzeme katmayabilirsin (default constructor) ya da malzeme katabilirsin (makarna(string malzeme){}).
bir classdan obje uretmekde constructor yardimi ile olur. 'new' anahtari o class in constructorunu cagirmani saglar. ornegin makarna tarifini yazdin (class makarna), sonra o makarna tarifinde ister malzemeli ister malzemesiz constructor yazdin. artik makarna yapma vakti geldi.
Makarna sadeMakarna = new Makarna();
dediginde o makarna tarifini (class) default constructor ile calistirir ve makarnayi yapar. artik makarna hafizada yer kaplar. default oldugu icinde icine malzeme katmamisindir.
Makarna salcaliMakarna = new Makarna("salca");
Makarna peynirliMakarna = new Makarna("peynir");
ya da salcali ve peynirli malzemeli yapabilirsin, eger malzeme alan constructorun var ise. sade makarna icin java otomatik olusturur (default constructor). ama eger malzemeli yapacaksan senin tanimlaman gerekir (constructor overloading) elbette malzemeli makarna objesi hafizada biraz daha fazla yer kaplar. ve olusturdugun her bir obje yani sade, salcali ve peynirli makarna hafizada ayri ayri yer kaplar, yani birini degistirince digeri degismez, tamamen bagimsiz objelerdir ve ram uzerinde farkli hafiza bolumlerinde tutulur.
- emrahday (02.01.19 16:30:39 ~ 16:36:58)
@emrahday
gerçekten çok açıklayıcı oldu artık tamamen anladım.
ben bu konuyu karıştırmamın sebebi class ismi ile oluşturulan constructor için de new operatörü ile oluşturulan default constructor içinde nesne oluşturur denmesiydi
ben de düşündüm ikisi de aynı işi yapıyor sa birini kullanmayalım dedim ve orada kafam karıştı
çok teşekkürler
bilginden ileri ki zamanlarda, ihtiyaç duyduğum da, uygun bulursan, ekşi sözlükten mesaj ile soru sorarak kullanmak isterim.
gerçekten çok açıklayıcı oldu artık tamamen anladım.
ben bu konuyu karıştırmamın sebebi class ismi ile oluşturulan constructor için de new operatörü ile oluşturulan default constructor içinde nesne oluşturur denmesiydi
ben de düşündüm ikisi de aynı işi yapıyor sa birini kullanmayalım dedim ve orada kafam karıştı
çok teşekkürler
bilginden ileri ki zamanlarda, ihtiyaç duyduğum da, uygun bulursan, ekşi sözlükten mesaj ile soru sorarak kullanmak isterim.
- aristotelesin berberi (03.01.19 06:53:07)
[]
java ve kotlin
Efendim merhabalar sizlerin değerli bilgilerine ihtiyacım var sorum şudur java ile andorid uygulama yapmayı öğrenmeye başladım sonra kotlin diye bir şey olduğunu öğrendim şimdi ben kotline geçmek istemiyorum en azından java yı öğrendikten sonra kotline geçmek istiyorum peki ben java ile devam etsem yaptığım uygulamayı yayınlaya bilirmiyim yoksa google play ben artık kotlini destekliyorum uygulamanı kotlin ile yaz sonra yayınla diyebilir mi ?
efendim teşekkür ediyorum javaya devam edicem.
- aristotelesin berberi (05.12.18 16:26:45)
Google 5 sene sonra bile Java'yi tamamen desteklemiyorum, sadece Kotlin (ya da @undertaker'in dedigi gibi Flutter) destekliyorum diyemez, derse kendi ayagina oyle boyle degil sikmis olur.
iOS tarafinda Swift baya hizli sekilde yayildi, kullanim orani oldukca artti. Ona ragmen cogu firmanin, ornegin Facebook'un bile codebase'inin %75'i hala Objective-C.
Java ogrenmeye devam +1. Orda tek sikinti Oracle ile yasadiklari copyright savaslari. Ona da bi cozum bulurlar.
iOS tarafinda Swift baya hizli sekilde yayildi, kullanim orani oldukca artti. Ona ragmen cogu firmanin, ornegin Facebook'un bile codebase'inin %75'i hala Objective-C.
Java ogrenmeye devam +1. Orda tek sikinti Oracle ile yasadiklari copyright savaslari. Ona da bi cozum bulurlar.
- elon (05.12.18 19:50:57)
Google hep bunu yapıyor önce dışardan bir tane hedeyi destekliyor sonra alternatifini sunup onu yüceltiyor. 2005 yılları civarında Google Adsense reklamlarında özel Mozilla Firefox reklamları vardı. Yani özel reklam bütçesinden Firefox'un indirilmesi için harcıyordu. Daha sonra Google Chrome geldikten sonra Firefox boykota uğradı desek yeridir. Şimdi aynısı java için de olup yavaş yavaş kotlin'e geçiş kaçınılmaz gibi.
- goodz (05.12.18 20:32:26)
1