#googleservices etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
#googleservices etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Ocak 2020 Cumartesi

Java Number of Arguments

Java da methodumuza kac tane parametre alacagimizi bilmiyorum. Input olarak istenildigi kadar parametre gonderilebilir ve bizim bunu handle etmemiz gerekebilir. Simdi bu sekilde bir ornek yapacagiz.

Input
1
2
3
4
5
6

Seklinde bir input verilsin. Bizden istenen output ise sayilari toplamak olsun. Ve bu islemi satir satir gostermek.

Output
1+2=3
1+2+3=6
1+2+3+4+5=15
1+2+3+4+5+6=21

Ornekte bizden istenen Add adli bir class icinde add methodumuzu yazmamiz.

class Add{
  void add(int... args) {
   int sum = 0;
   String seperator = "";
   for(int i : args) {
    sum += i;
    System.out.println(seperator + i);
    seperator = "+";
   }
   System.out.println("= " + sum);
  }
 }

Bu kod tam olarak ta istenen islemi yapiyor. Simdi de ornekte builtin tanimlanmis kodlarla son halini asagiya ekleyelim.



10 Nisan 2019 Çarşamba

ANDROID JSOUP

Merhaba,
Bu yazimdan Jsoup kullanimi ile ilgili ornek yapacagim.
Oncelikle Jsoup nedir kisaca ondan bahsedelim. Jsoup html parse eden yani ayristiran bir java kutuphanesidir. Jsoup ile html sayfalarindan css elemanlarini kullanarak veri cekebilir ve bu verileri uygulamamiz icinde kullanabiliriz.

Dezavantaji ise web sitesinin html elemanlarinda degisiklik yapildiginda istedigimiz veriyi cekemeyebiliriz.

Oncelikle ilk adim olarak build.gradle a jsoup u ekleyelim.

compile 'org.jsoup:jsoup:1.11.3'



Simdi de Manifest e gidip internet izni verelim cunku uygulamamiz internetten veri cekecek.

Simdi layoutumuza bir buton koyalim ve o butona tiklandiginda http://sengamze.blogspot.com/2019/04/android-resim-ekleme.html
bu linkte yer alan yazimin basligini ekrana yazdirsin.

package gykizmir.com.jsoupexample;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.IOException;


public class MainActivity extends AppCompatActivity {

    Button learnTitleBtn;
    TextView titleOfBlog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        titleOfBlog = (TextView) findViewById(R.id.learnTitle);

        learnTitleBtn = (Button) findViewById(R.id.learnTitle);

        learnTitleBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Title().execute();
            }
        });


    }

    private class Title extends AsyncTask<Void, Void, Void>{

        String url = "http://sengamze.blogspot.com/2019/04/android-resim-ekleme.html";
        String title;
        ProgressDialog progressDialog;

        @Override
        protected void onPreExecute(){
            super.onPreExecute();
            progressDialog = new ProgressDialog(MainActivity.this);
            progressDialog.setTitle("Jsoup Example");
            progressDialog.setMessage("Title is retrieving");
            progressDialog.setIndeterminate(false);
            progressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) {
            try {
                Document document = Jsoup.connect(url).get();
                title = document.title();
            } catch (IOException ex){
                ex.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void avoid){
            titleOfBlog.setText(title);
            progressDialog.dismiss();
        }
    }

}




layoutumuz ise asagidaki gibi olmali.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="gykizmir.com.jsoupexample.MainActivity">

    <Button
        android:id="@+id/learnTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Learn Title"/>


    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Title" />


</LinearLayout>




Calistirdigimizda ise ekran goruntusu asagidaki gibidir.

          

4 Nisan 2019 Perşembe

Android - Move layouts up when keyboard is shown

Android uygulamalarimizda ekranimizdaki ogeler ekrani kapliyorsa o ekranda klavey acildiginda itemlerin bazilari klavyenin altinda kalir. Bu durumda ilgili edittex secildiginde o layout yukari tasinir ve ilgili item in gorunmesi saglanir.

Bunu yapmamizi saglayan kod parcasi ve nasil yapilcagi asagidadir.

Activity nin onCreate() methoduna alttaki kod yapistirilir.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

3 Nisan 2019 Çarşamba

Android Resim Ekleme

Merhaba,
Bir android projesi olusturdugumuzda android icinde var olan resimleri nasil ekleriz onu anlatacagim.
File -> New -> Vector Asset diyoruz ve ekrana gelen icon listesinden birini seciyoruz.


Daha sonra layoutlarda @drawable altindan ekledigimiz dosya adini veriyoruz.


<item    android:id="@+id/navigation_diet"    
android:icon="@drawable/ic_room_service_black_242dp" 
 android:title="@string/title_diet" />


23 Mart 2019 Cumartesi

ANDROID - FINE LOCATION VE COARSE LOCATION FARKI

Android de uygulamamiz eger konuma erisme ihtiyaci duyuyorsa o zaman AndroidManifest ten konum erisimine izin vermemiz gerekir.

2 izin tipinin farkindan bahsedecegim:


1. The Fine location provides better and accurate locations.

Requires permission,

ACCESS_FINE_LOCATION

<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” />

It gives permission for using both GPS_PROVIDER and NETWORK_PROVIDER

or  GPS_PROVIDER only for determining the position.

2. The Coarse location provides less accurate locations.

Requires permission,

ACCESS_COARSE_LOCATION

<uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION” />

It gives permission for using both NETWORK_PROVIDER only for determining the position.




13 Ocak 2019 Pazar

Genymotion'a Play Store Yukleme

Merhaba,

Bu yazimda Genymotion a Google Play Store nasil yuklenir bunu gosterecegim.

Bunun icin oncelikle emulatorle uyumlu zip dosyasini buradan indirelim.

Daha sonra bu zipi cikartmadan Genymotion device miza surukle birak yapalim.

Ekrana gelen uyariya OK diyelim.

Daha sonra islem tamamlaninca device i yeniden baslatmamizi isteyecek. Yeniden baslatalim.

Cihaz acildiginda herhangi bir google service ine tiklayarak login olalim.

Ben Gmail uzerinden login oldum.

Verilen hatalari simdilik onemsemeyelim. Cunku basarili bir sekilde login olunduktan sonra google play icin update etmemizi isteyecek ve hatalarimiz orada cozulecek.

 Login olunduktan sonra Google service lerini Play Store uzerinden update edelim.

Sorunumuz cozulmus olacaktir.

Iyi calismalar.

Kaynak : https://medium.com/@eferhatg/genymotiona-google-play-store-yukleme-2-cab6b2ee65a2