19 Ocak 2018 Cuma

Ekran yer paylaşımı tespit edildi hatası - Android

Android'de permission'larla ilgili geliştirme yaparken sıklıkla Ekran Yer Paylaşımı Tespit Edildi hatası alıyordum. En sonunda fark ettim ki toast mesajları ekrandan kaybolmadan izin ver'e tıklayınca bu hata oluşuyormuş. Stackoverflow'da da böyle bir yanıt varmış :
https://stackoverflow.com/questions/35453759/android-screen-overlay-detected-message-if-user-is-trying-to-grant-a-permissio
Buradan şöyle bir ders çıkarabiliriz. Uygulamayı test ederken aralara toast mesajı yazmak yerine log'a yazdırmak tercih edilmelidir.

Uygulama geliştirici olmayanlar için ise, bu hatayı gidermek için, ayarlar menüsünden uygulama ayarlarına gidip bu uygulama için gerekli izinleri manuel olarak vererek bu hatadan kurtulabilirsiniz.

10 Ocak 2018 Çarşamba

Android, HTML - Margin, padding, border nedir, farkları nedir?


          Sondaki örneğe bakalım. 10px margin, 10px border, 10px padding. Bizim view element'imizin border'ını 10 px yaptık(border kırmızı ile gösterilmiştir). Bizim view element'imizin üstteki view element'i ile arasında 10px'lik boşluk olmasını istiyorsak, üst margin'i 10px olarak belirlemeliyiz. Yani margin, 2 view element'inin border'ları arasında bırakmak istediğimiz boş alanı ifade eder. Örneğin linearlayout viewgroup'unu kullanıyoruz diyelim. orientation olarak vertical seçtik diyelim. Bir buton koyduk diyelim . Butonun altına bir imageview koyduk diyelim. imageview'in top_margin attribute'ünü 50 px olarak belirledik diyelim. Bu durumda butonla imageview arasında 50px'lik bir boşluk bırakmış oluruz. HTML'deki padding nedir onu da açıklayalım, Bir buton yaptık bu butonun içerisinde de bir yazı gösteririz. Butonun sınırları ve butonun içerisindeki yazı arasındaki boşluğu ifade eder padding. 

Android Dersleri - layout_gravity

Summary : 
For horizontal Linear Layout, we can use layout_gravity attribute of a View( for example a Button, TextView etc. ) in order  to position the View element vertically.( Yatay linear layout'daki View'lerin dikey pozisyonunu belirlemek için View element'lerin layout_gravity attribute'ünü kullanırız. Zaten yataydaki 3 butondan birini sağa sola vs. hareket ettiremeyeğimizi düşünürsek, tek hareket ettirebileceğimiz yönün dikey olduğunu anlarız. Burdan aklımızda kalsın. )
For vertical Linear Layout, we can use layout_gravity attribute of a View( for example a Button, TextView etc. ) in order  to position the View element horizontally.( Vertical linear layout'daki View'lerin yatay pozisyonunu belirlemek için View element'lerin layout_gravity attribute'ünü kullanırız. Zaten dikey olarak dizilmiş 3 butondan birini aşağı yukarı vs. pozisyonlandırmanın mantıksız olduğunu düşünürsek, tek hareket ettirebileceğimiz yönün yatay olduğunu anlarız. Burdan aklımızda kalsın. )
For a horizontal Linear Layout the following values make sense:
  • top
  • center
  • bottom
That is because the children of a horizontal Linear Layout are layed out horizontally one after the other. Only thing can be controlled using the android:layout_gravity is how a child view is positioned vertically.
In the above example the top Linear Layout is a horizontal Linear Layout. Setting the android:layout_gravity=top on thel_g=top Button has an effect of positioning it at the top. Setting the android:layout_gravity=center on the l_g=centerButton has an effect of positioning it at the vertical center. Setting the android:layout_gravity=bottom on thel_g=bottom Button has an effect of positioning it at the bottom. ( Horizontal linear layout kullanıyoruz diyelim. Ekranda yan yana 3 tane buton koyduk diyelim. Bu yan yana koyulan butonları dikeyde top pozisyona mı dikeyde center pozisyona mı dikeyde bottom pozisyona mı koyacağımızı belirlemek için Button View'in(Button element'in) layout_gravity attribute'ünü kullanırız. x x x -> x'ler bir butonu gösteriyor olsun. Herbir x'in dikey pozisyonu belirlemek için Button View'in(Button element'in) layout_gravity attribute'ünü kullanırız.  )
For a vertical Linear Layout the following values make sense:
  • left
  • center
  • right
That is because the children of a vertical Linear Layout are layed out vertically one below the other. Only thing can be controlled using the android:layout_gravity is how a child view is positioned horizontally.
In the about example the bottom Linear Layout is a vertical Linear Layout. Setting the android:layout_gravity=left on the l_g=left Button has an effect of positioning it at the left. Setting the android:layout_gravity=center on thel_g=center Button has an effect of positioning it at the horizontal center. Setting the android:layout_gravity=right on the l_g=right Button has an effect of positioning it at the right. ( Vertical linear layout kullanıyoruz diyelim. Ekranda alt alta 3 tane buton koyduk diyelim. Bu alt alta konulan butonları yatayda en sola mı ortaya mı en sağa mı koyacağımızı belirlemek için Button View'in(Button element'in) layout_gravity attribute'ünü kullanırız. x x x -> x'ler bir butonu gösteriyor olsun. Herbir x'in dikey pozisyonu belirlemek için Button View'in(Button element'in) layout_gravity attribute'ünü kullanırız.  )


Example : 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

...

android:orientation="horizontal"

android:gravity="center" >



<Button

...

android:layout_gravity="top">

</Button>

<Button

...

android:layout_gravity="center">

</Button>

<Button 

...

android:layout_gravity="bottom">

</Button>



</LinearLayout>

android:layout_gravity is the Outside gravity of the View. That means, to specify the direction in which the View should touch it's parent's border. In other words, it sets the gravity of the View or Layout in its parent. ( Yukarıdaki kod örneğini düşünürsek, bir horizontal linear layout içerisinde button view'ler olsun. Bu button view'lerin parent view'leri olan linear layout içerisinde yukarı, aşağı veya center'a hizalanma pozisyonunu belirleriz. )
android:gravity is the Inside gravity of that View. This means, in which direction it's contents should align. sets the gravity of the content of the View it is used on. In other words, it sets the gravity of the content of the View it is used on. ( Yukarıdaki kod örneğini düşünürsek, bir horizontal veya vertical linear layout içerisinde button view'ler olsun. Bu button view'lerin içlerinde bir text vardır. Button view'lerin içerikleri olan text'leri sağa,sola,yukarı veya ortaya hizalamak için gravity attribute'ünü kullanırız. )
Easy trick to remember: Take "layout-gravity" as "Lay-outside-gravity". ( layout-gravity'nin hangi çeşit gravity olduğunu şuradan hatırlayalım. Lay outside gravity yani bir view'in parent'ı içerisindeki pozisyonu, hizalanmasını belirler layout-gravity. gravity ise bir view'in içeriğinin bu view'e göre pozisyonunu, hizalanmasını belirler, örneğini textview'in gravity attribute'ünü kullanarak aslında şunu belirleriz, textview'in içerisindeki text'in textview'e göre hizalanması. textview'in layout_gravity attribute'ünü kullanarak ise textview'in parent view'i içerisindeki pozisyonunu, hizalanmasını belirleriz, örneğin horizontal bir linear layout içerisindeki textview'in, içerisinde bulunduğu linear layout'a göre pozisyonunu belirleriz, üste mi alta mı ortaya mı hizalansın diye.   )


Note that some of these attributes are only applicable when a View is in certain specific ViewGroup(s). For example, the  layout_weight and layout_gravity attributes are only applicable if a View is either in a LinearLayout or TableLayout. ( Bir view'in layout_weight ve layout_gravity attribute'lerinin düzgün bir şekilde çalışabilmesi için, bu view'in LinearLayout veya TableLayout içerisinde olması zorundadır. Örneğin, LinearLayout veya TableLayout içerisindeki bir button'ın layout_weight ve layout_gravity attribute'lerini kullanabiliriz ama bir relativeLayout'daki button view'de layout_gravity ve layout_weight attribute'leri kullanılamaz. Yani bazı attribute'ler sadece bazı view/viewgroup'larda düzgün çalışır. )

fill_parent : Bir view'in parent view'inin yatay veya dikey tüm alanını kaplaması için kullanılır.


wrap_content : Bir view'in, yatayda/dikeyde içeriği kadar alanı kaplaması için kullanılır.

Android - How to properly highlight selected item on recyclerview ? Checkbox lost checked value when scrolling in recyclerView, listView. How to solve it?

Recently, i have faced the problem of losing the checked value when scrolling in recyclerView. I searched on the web and didn't find an exact solution. Solved it after some time. However, i faced the similar problem when i wanted to highlight the selected rows.  After some search on the web, i saw that there are lots of people suffering from this problem however the solution is not available. Thus i wanted to share my solution...

I create a project using my own project codes with copy past method, thus the solution may involve some unnecessary parts.

MainActivity.java :

package com.example.oiyio.test_recyclerview_highlight;

  import android.support.design.widget.TabLayout;
  import android.support.v4.app.Fragment;
  import android.support.v4.app.FragmentManager;
  import android.support.v4.app.FragmentPagerAdapter;
  import android.support.v4.view.ViewPager;
  import android.support.v7.app.ActionBar;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.support.v7.widget.Toolbar;
  import android.view.MenuItem;

  import java.util.ArrayList;
  import java.util.List;

public class MainActivity extends AppCompatActivity {
  public Toolbar toolbar;

  private TabLayout tabLayout;
  private ViewPager viewPager;
  MyFragment myFragment;
  private ActionBar ab;

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

    /* Toolbar and Tabs added */    toolbar = (Toolbar) findViewById(R.id.toolbar);

    setSupportActionBar(toolbar);

    ab = getSupportActionBar();

    ab.setHomeAsUpIndicator(R.drawable.ic_menu);
    ab.setDisplayHomeAsUpEnabled(true);



    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);

    // tab ve tab icerigini bagladik.    tabLayout.setupWithViewPager(viewPager);
      /*end*/  }

  @Override  public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch (id) {
      case android.R.id.home:
        if(MyFragment.is_in_action_mode)
        {
          onBackPressed(); // back button        }
        else        {
        }
        return true;
    }
    return super.onOptionsItemSelected(item);
  }
  @Override  public void onBackPressed() {
    if(myFragment.is_in_action_mode)
    {
      myFragment.clearActionM();
      myFragment.adapter.notifyDataSetChanged();  // bu gerekli mi gercekten ???    }
    else {
      super.onBackPressed();
    }
  }

  @Override  protected void onResume() {
    super.onPause();
    RV_Adapter m = new RV_Adapter();
  }

  // tabLayout'a 3 tane tab yani 3 tane fragment ekler:  private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    myFragment = new MyFragment();
    adapter.addFrag(myFragment, "My Tab");
    viewPager.setAdapter(adapter);
  }

  class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
      super(manager);
    }

    @Override    public Fragment getItem(int position) {
      return mFragmentList.get(position);
    }

    @Override    public int getCount() {
      return mFragmentList.size();
    }

    public void addFrag(Fragment fragment, String title) {
      mFragmentList.add(fragment);
      mFragmentTitleList.add(title);
    }

    @Override    public CharSequence getPageTitle(int position) {
      return mFragmentTitleList.get(position);
    }
  }
}


MyFragment.java 

package com.example.oiyio.test_recyclerview_highlight;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.RelativeLayout;

import java.util.ArrayList;
import android.support.v7.widget.DividerItemDecoration;
import jp.wasabeef.recyclerview.animators.LandingAnimator;

public class MyFragment extends Fragment implements View.OnLongClickListener {
    public static boolean is_in_action_mode = false;
    View mainLayout;
    ArrayList<String> selectionList = new ArrayList<String>();
    ArrayList<RelativeLayout> relativeLayoutList = new ArrayList<RelativeLayout>();
    Toolbar toolbar ;

    private RecyclerView recyclerView;
    public RV_Adapter adapter;
    private RecyclerView.LayoutManager layoutManager;
    private DividerItemDecoration dividerItemDecoration;
    ArrayList<String> foodList=new ArrayList<String>();

    public MyFragment() {
    }

    @Override    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
      ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);

      for(int i = 0;i<30;i++)
        foodList.add("Item" + i);
    }

    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mainLayout = inflater.inflate(R.layout.fragment, container, false);
      return mainLayout;
    }

    @Override    public void onPause() {
      super.onPause();
      is_in_action_mode = false;
      removeRelativeLayoutList();
    }

    @Override    public void onResume() {
      super.onResume();
      updateList();
      adapter.notifyDataSetChanged();
    }

    public void updateList(){
      adapter.updateList(foodList);
    }

    @Override    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
      super.onViewCreated(view, savedInstanceState);
      recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
      adapter = new RV_Adapter(getActivity(), this, foodList);
      recyclerView.setItemAnimator(new LandingAnimator());

      layoutManager = new LinearLayoutManager(this.getContext());
      recyclerView.setLayoutManager(layoutManager);
      dividerItemDecoration = new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL);
      recyclerView.setAdapter(adapter);
      recyclerView.addItemDecoration(dividerItemDecoration);
    }

    @Override    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
    }

    @Override    public boolean onLongClick(View v)
    {
      is_in_action_mode = true;
      adapter.notifyDataSetChanged();
      ((MainActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
      ((MainActivity)getActivity()).setSupportActionBar(toolbar);
      ((MainActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);

      return true;
    }

    public void prepareselection(View view, int position, RelativeLayout relativeLayout)
    {
      relativeLayoutList.add(relativeLayout);

      if(((CheckBox)view).isChecked())
      {
        selectionList.add(foodList.get(position));
      }
      else {
        selectionList.remove(foodList.get(position));
      }
    }

    private void removeRelativeLayoutList() {
      for(RelativeLayout rel : relativeLayoutList)
        rel.setBackgroundResource(R.color.food_unselected);
    }

  public void clearActionM()
  {
    is_in_action_mode = false;
    toolbar.getMenu().clear();

    //While returning from action mode(selection mode) to non-action mode, back button on the toolbar replaced by ic_menu button.    ((MainActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ((MainActivity)getActivity()).getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);

    adapter.resetCheckBoxState();
    removeRelativeLayoutList();
  }
}

RV_Adapter.java

package com.example.oiyio.test_recyclerview_highlight;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.util.ArrayList;

/** * Created by IamDeveloper on 8/16/2016. */public class RV_Adapter extends RecyclerView.Adapter<RV_Adapter.ViewHolder> {
    public ArrayList<String> list;
    boolean[] checkBoxState;
    MainActivity mainActivity;
    MyFragment myFragment;
    View firstview;

    private Context context;

    FrameLayout framelayout;

    public RV_Adapter() {

  }

    public RV_Adapter(Context context, MyFragment m, ArrayList<String> list ) {
      this.list = list;
      myFragment = m;
      this.context = context;
      mainActivity = (MainActivity) context;
      checkBoxState = new boolean[list.size()];
      // relativeLayoutState = new boolean[list.size()];    }

    public class ViewHolder extends RecyclerView.ViewHolder  {
        public TextView textView;
        public CheckBox checkBox;
        RelativeLayout relativeLayout;
        MainActivity mainActivity;
        MyFragment myFragment;
        public ViewHolder(View v,MainActivity mainActivity,MyFragment m) {
            super(v);
            textView = (TextView) v.findViewById(R.id.tv_foodname);
            /**/            checkBox= (CheckBox) v.findViewById(R.id.checkBox);
            relativeLayout = (RelativeLayout)v.findViewById(R.id.relativelayout);
            this.mainActivity = mainActivity;
            this.myFragment = m;
            framelayout = (FrameLayout) v.findViewById(R.id.framelayout);
            framelayout.setOnLongClickListener(m);
        }

    }

    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        firstview = inflater.inflate(R.layout.row, parent, false);
        return new ViewHolder(firstview,mainActivity, myFragment);
    }

    @Override    public void onBindViewHolder( final ViewHolder holder,  final int position) {

        holder.textView.setText(list.get(position));

        holder.itemView.setOnClickListener(new View.OnClickListener() {
          @Override          public void onClick(View v) {

          }
        });

        // When action mode is active, checkboxes are displayed on each row, handle views(move icons) on each row are disappered.        if(!myFragment.is_in_action_mode)
        {

          holder.checkBox.setVisibility(View.GONE);
        }
        else        {
          holder.checkBox.setVisibility(View.VISIBLE);
          holder.checkBox.setChecked(false);
        }

          holder.checkBox.setTag(position);

          holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
            @Override            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
              if(compoundButton.isPressed()) // ekrandan kaybolan checkbox'lar otomatik olarak state degistiriyordu ve bu listener method cagiriliyordu, bunu onlemek icin isPressed() method'u ile kullanici mi basmis diye kontrol ediyorum.              {
                int getPosition = (Integer) compoundButton.getTag();  // Here we get the position that we have set for the checkbox using setTag.                checkBoxState[getPosition] = compoundButton.isChecked(); // Set the value of checkbox to maintain its state.                //relativeLayoutState[getPosition] = compoundButton.isChecked();
              if(checkBoxState[getPosition] && getPosition == position )
                holder.relativeLayout.setBackgroundResource(R.color.food_selected); /** Change background color of the selected items in list view  **/              else                holder.relativeLayout.setBackgroundResource(R.color.food_unselected); /** Change background color of the selected items in list view  **/                myFragment.prepareselection(compoundButton, getPosition, holder.relativeLayout);

              }
            }
          });
          holder.checkBox.setChecked(checkBoxState[position]);

          if(checkBoxState[position]  )
            holder.relativeLayout.setBackgroundResource(R.color.food_selected); /** Change background color of the selected items in list view  **/          else            holder.relativeLayout.setBackgroundResource(R.color.food_unselected);
    }



    @Override    public int getItemCount() {
        return list.size();
    }

    public void updateList(ArrayList<String> newList){
      this.list = newList;
      checkBoxState = new boolean[list.size()+1];
    }

  public void resetCheckBoxState(){
    checkBoxState = null;
    checkBoxState = new boolean[list.size()];
  }

}

activity_main.xml
<?xml version="1.0"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                                 xmlns:app="http://schemas.android.com/apk/res-auto"
                                                 android:layout_width="match_parent"
                                                 android:layout_height="match_parent"
                                                 android:fitsSystemWindows="true">
 <android.support.design.widget.AppBarLayout android:layout_width="match_parent"
                                             android:layout_height="wrap_content"
                                             android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
  <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
                                     android:layout_width="match_parent"
                                     android:layout_height="?attr/actionBarSize"
                                     android:background="?attr/colorPrimary"
                                     app:layout_scrollFlags="scroll|enterAlways"
                                     app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
   <RelativeLayout android:layout_width="match_parent"
                   android:layout_height="wrap_content">
    <TextView android:id="@+id/tv_title"
              android:layout_toRightOf="@+id/iv_icon"
              android:layout_centerVertical="true"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:background="?attr/selectableItemBackground"
              android:layout_marginLeft="10dp"
              android:text="CheckBox and Highlight"
              android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"/>
    <TextView android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/cnt_text"
              android:text="0 item selected"
              android:textColor="#fff"
              android:textSize="20dp"
              android:textStyle="italic|bold"
              android:visibility="gone"/>
   </RelativeLayout>
  </android.support.v7.widget.Toolbar>
  <android.support.design.widget.TabLayout android:id="@+id/tabs"
                                           android:layout_width="match_parent"
                                           android:layout_height="wrap_content"
                                           app:tabMode="scrollable"/>
 </android.support.design.widget.AppBarLayout>
 <!-- Tab'in altindaki alandir. FrameLayout'un arkasindaki alandir. -->
 <android.support.v4.view.ViewPager android:id="@+id/viewpager"
                                    android:layout_width="match_parent"
                                    android:layout_height="match_parent"
                                    app:layout_behavior="@string/appbar_scrolling_view_behavior"
                                    android:background="@color/food_unselected"/>
</android.support.design.widget.CoordinatorLayout>


row.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/framelayout"
             android:layout_width="match_parent"
             android:layout_height="?listPreferredItemHeight"
             android:clickable="true"
             android:focusable="true"
             android:foreground="?selectableItemBackground"      >
  <!--  android:background="?android:attr/activatedBackgroundIndicator"  -->  <!-- android:background="@color/food_unselected" -->  
  <RelativeLayout    android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/relativelayout">

    <CheckBox      android:layout_width="wrap_content"
                   android:layout_height="match_parent"
                   android:id="@+id/checkBox"
                   android:layout_marginLeft="5dp"
                   android:visibility="gone"      />

    <TextView      android:id="@+id/tv_foodname"
                   android:layout_toRightOf="@id/checkBox"
                   android:layout_width="wrap_content"
                   android:scaleType="center"
                   android:layout_height="match_parent"
                   android:layout_gravity="center_vertical"
                   android:layout_marginLeft="5dp"
                   android:gravity="center_vertical"
                   android:textAppearance="?android:attr/textAppearanceMedium" />

  </RelativeLayout>
</FrameLayout>



fragment.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </LinearLayout>



Download link : 

https://www.dropbox.com/s/ssm58w62gw32i29/recyclerView_checkbox_highlight.zip?dl=0

Leonardo Da Vinci'nin 7 temel prensibi

1.curıosıta(merak) yaşama doymak bilmeyen bir merak ve öğrenmeyle bağlı olmaktır. hiçbir konu, hiçbir dal ayrımı yapmaksızın, çevremizdekilerin düşünecek ve söyleyeceklerinden çekinmeden, merekımızı kaybetmeden sormak, araştırmak, öğrenmek gereklidir.

2.dımostrazıone(ispat): bilgiyi deneme yolu ile test etme, sebatkarlık ve hatalardan ders alma arzusu anlamına gelir. öğrenilen her şey mutlaka denenerek test edilmeli, doğruluğuna ondan sonra karar verilmelidir.

3.sensazıone(hissetme): duyguların özellikle hayati deneyimlerin bir aracı olan görüşün devamlı olarak rafine edilmesi anlamına gelir. müzik dinlemeli, resim çizmeli,müzeler gezmeli, kitap okumalıyız. değişik yiyecek ve içecekler tatmalı, çevremizdeki her şeye dokunmalıyız.

4.sfumato (pus):belirsizliği,paradoksu ve kararsızlığı kucaklama arzusu anlamına gelir. gelişen dünyadabaşarılı olmak için belirsizlikler altında çalışmaya alışmalıyız. paradoksla karşılaştığımızda sukunetimizi koruyarak etkili ve sağlikli bir zihne sahip olabiliriz.

5.arte/scıenza(bilim ve sanat): mantık ve hayal arasındaki dengenin geliştirilmesi anlamına gelir. her insan doğuştan her türlü yeteneğe sahiptir.

6.corporalıta (vücudi olma): zarafet; her iki eli de aynı şekilde kullanabilmenin filtresi ve dengenin sağlanması anlamına gelir. başarı için kişinin öncelikle kendisiyle barışık olması gerekir. bunu sağlayacak bir etkende insanın sağlıklı, zarif ve dengeli bir vücuda sahip olmasıdır. bunun için kişinin sahip olduğu fiziki yapısını geliştirmesi gerekir. bunu sağlamak amacıyla kişi: stresten uzak durmalı, zihnini şen tutmalı , dengeli bir beslenme yapmalı, uykusunu düzenli olarak almalı, zarafetine dikkat etmeli ve sağlığını korumalıdır.

7.connessıone(ilişkilendirme) bütün olayların ve her şeyin ilişkisini anlamak ve değerlendirmek, sistemli düşünme anlamına gelir. kısaca yaşadığımız her şeyin birbiriyle olan ilişkisini anlamaya çalişmalı, her şeyi bir arada değerlendirmeliyiz.


***********************DAHA UZUN AÇIKLAMALI*************************

1. GERÇEĞİ ARA – CURİOSİTA
2. 2. SORUMLULUK AL – DİMOSTRAZİONE
3. 3. FARKINDALIĞI KESKİNLEŞTİR – SENSAZİONE
4. 4. GÖLGEYE BAĞLAN – SFUMATO
5. 5. DENGE KUR - ARTE/SCİENZA
6. 6. BÜTÜNLEŞMEYİ BESLE – CORPORALİTA
7. 7. SEVGİYİ YAŞA - CONNESİONE

1. GERÇEĞİ ARA - CURİOSİTA
Yaşama doymak bilmez bir merak duyan yaklaşım ve dur durak bilmez bir öğrenme isteği. Gerçeği aramak, yaşam boyu süren öğrenme ve yaratıcılığın pınarıdır. Bu yüzden, Leonardo’nun şimdiye kadar yaşamış en meraklı insan olması mümkündür. Gerçeği arayış ayrıca, Tanrısal Olan ile ilişki kurma arzumuzun ifadesidir.
“Eğer Tanrını yani efendini arıyorsan, onu sadece bütün kalbin ve ruhunla ararsan bulursun.” Hepimiz tanrısal ışıkla doğduk. Ama okulun ve toplumun her yeni doğan bebeğini törpüleyip sıradan bir insan ahaline getiren etkilerle mücadele etmemizi sağlayacak sırları bilmiyoruz. Mevlana bu özgürlüğü nasıl elde edebileceğimizi şöyle anlatıyor; “Zeka Tanrının armağanı olduğu için çeşmesi ruhun derinliklerindedir. Tanrı vergisi bilginin suyu gönülden gelirse hiç azalmaz ve hiç kirlenmez. Ve o bilginin yolu kapalıysa içeri ne zararı dokunur? Kalbin evinden sürekli akar. Edinilmiş zeka sokaktan eve gelen oluklar gibidir, eğer o borular tıkanırsa ev susuz kalır. Çeşmeyi kendi içinde aramalısın.”

Geri dönüp çocukluğunuzu düşünün ve söyleyeceklerimi hangi yaşlarda merak ettiğinizi anımsayın;
* Ben nereden geldim?
* Neden buradayız?
* Ölünce nereye gideriz?
* Bir Tanrı var mı?
* Hayatımın bir anlamı ve amacı var mı?
* Ruh diye bir şey var mı?
* Ben kimim?


Sevgiyi yaşa ve kendini değerlendir;
* Kendimi egomdan daha güçlü bir şeyle bağlantılı hissediyorum.
* Kendimden daha güçlü olanla ilişkimi her gün besliyorum.
* Anneme, babama ve akrabalarıma bilinçli olarak şefkat gösteriyorum.
* İş arkadaşlarıma bilinçli olarak şefkat gösteriyorum.
* Rasgele ilişkiye girdiğim herkese bilinçli olarak şefkat gösteriyorum.
* Sevginin, vermenin ve almanın doyuruculuğunu yaşamın her gününde yaşamak için kendime izin veriyorum,

Bir ruh defteri tutmalısınız...
Kim olduğunuzu düşüncelerinize bakarak söyleyebilir misiniz?
Kim olduğunuzu duygularınıza bakarak söyleyebilir misiniz?
Kim olduğunuzu vücudunuza bakarak söyleyebilir misiniz?
Kendinizi düşünce, duygu ve fiçik varlığınızdan başka bir şeyle özdeşleştirebilir misiniz? Nasıl mı?
Oturun ve düşünün;
* Birşeyi beğenme veya beğenmemeniz deneyiminizi nasıl etkiliyor?
* Eğer beğenme veya beğenmeme duygunuzu durdurabilirseniz, bu deneyiminizi nasıl etkiliyor?
Bu cevapları lütfen not edin...
Gerçeği ararken her yaşadığınız olayda şunları düşünün;
* Doğru mu? Doğruyu gerçekten bilmek istiyorsanız, cevap içinizde belirecektir...
* Bu doğrudan emin misiniz?
* Emin olunca tepkiniz nedir?
* Eğer böyle düşünmeseydiniz ne olurdu?
Eğer varsa kendinizin, yoksa çevrenizdeki bir çocuğu örnek olun, onunla ilişki kurun, hareketlerini ve davranışlarını gözleyin. Onun ruhsal temizliğini örnek alın, eksileri ve artıları gözlemleyin.

2. SORUMLULUK AL - DİMOSTRAZİONE
Bilgiyi deneyimle sınama kararlılığı ve hatalardan ders çıkarma istekliliği. Leonardo dogma ve batıl inancı reddederek sorumluluk üstlendi ve kendi araştırmalarını yaptı. Ruhsal bir yolculukta olmak, kendi düşüncelerimizi ve eylemlerimizi geliştirebilmemiz ve sonuçta yaratıcı olabilmemiz için sorumluluk almamızı gerektirir.
* Devam edeceğim...
* İşe yarar bir insan olmak beni hiç yormuyor...
* Engeller beni durduramaz...
* Titizlik bütün engelleri aşar...
* Rotanı bir yıldıza göre çizersen fırtınadan kurtulabilirsin...
Emek bize tüm iyilikleri getirir ama farkında olmamız gereklidir. Emek dış dünyada harcadığımız görünür çabanın çok ötesindedir, içimizdemi çalışmanın ve ahlaki farkındalığımızın yansımasıdır. Leonardo bize, adaletli olmak ve iktidar gücü, olayların içyüzünü kavramayı ve iradeyi gerektirir, diyordu. Eğer sorumluluğunuzun farkında olmaz ve kötülüğü cezalandırmazsanız, kötülüğe izin vermiş ve önermiş olursunuz. Unutmayın düzgün yürüyen, az düşer.
Ruhsal sorumluluk değerlendirmesi:
* Batıl veya dinsel inançların ve de törelerin yerine getirilmesi birbirlerinden farklı şeylerdir, bu deneyim benim için gereklidir.
* Ruhsal anlayışımı, deneyimlerimle sınıyorum.
* Düşüncelerimin sorumluluğunu alıyorum.
* Duygularımın sorumluluğunu alıyorum.
* Bedenimin sorumluluğunu alıyorum.
* Niyetlerimin sorumluluğunu alıyorum.
* Yaşadığım tüm sonuçların sorumluluğunu alıyorum.
* Küçükten bana verilen tüm dinsel öğretileri kabul ediyorum.
* Küçükten bana verilen tüm dinsel öğretileri kabul etmiyorum.
* Küçükten bana verilen tüm dinsel öğretilerle, kendi deneyimlerim arasında bir uzlaşma sağlamaya çalışıyorum.

Frankl Ölçeği:
Bir insanın elinden herşeyi alınabilir. Ama tek bir şey hariç; insanın sahip olabileceği özgürlüklerin sonuncusu, hangi koşullar altında olursa olsun bir kişinin tutumunu seçme özelliğidir. Frankl Ölçeği, bizim nereye kadar bilinçli, sorumluluk sahibi varlıklar olduğumuzu ölçmek içindir.

0 100 Frankl, Leonardo, Gandi
100 noktasındaki insanlar, düşüncelerinin, niyetlerinin, eylemlerinin ve bunların başkaları üzerinde yaptığı etkilerin sorumluluğunu eksiksiz alırlar. Soldaki uçta yani 0 noktasında bulunanlar ise, başlarına gelen herşeyi başkalarından bilirler, ağlayıp sızlarlar ve suçlarlar.
Yerimizi nasıl anlayacağız? İşte size birkaç örnek sözcük;
* Karım veya kocam beni hiç anlamıyor...
* İşyerimde kimse beni önemsemiyor, dinlemiyor...
* Keşke şöyle ya da böyle olsaydı...
* Ben bunu beceremiyorum...
* Bu konuda yapabileceğim bir şey yok...
* Bunu yapmama izin vermezler...
* O beni hep kızdırıyor...

Eğer bunlar ve bunlar gibi şeyler söylüyonsanız, sızlanıyor, suçluyor, hep dert yanıyorsanız, hemen tutumunuzu değiştirmeye kalkmayın. Yüzeysel olumlu düşünceler oluşturmak yerine kendiniz gözleyin. Bundan sonra daha bilinçli sızlanacaksınız, evet bu komik olabilir ama artık sızlanmalarınıza gülebilir ve daha yapıcı olabilirsiniz. Şimdi 100 noktasındaki yaklaşımlara bakalım;
* Bu kişiye veya olaya vereceğim tepkiyi ben yapıyorum ya da seçiyorum.
* Bana nasıl muamele edeceklerini herkese ben öğretiyorum.
* Sadece onların bakış açısını değiştirerek, başkalarını değiştirebilirim.
* Daha iyi sonuçlar için, yaklaşımımı nasıl değiştirebilirim?
* O kişinin veya olayın beni nefret ettiren yöne bana nasıl yansıyor?

Sonra yaşadığınız bir olayı seçin ve ölçekte yerini bulun. Bu bir zorluk veya sorun olabilir, verdiğiniz tepkiyi tanıyıp defterinize yazın. Tarafsız olun ve bir ile yüz arasında bir yeri işaretleyin. Örneğin sevdiğiniz insanı terk ettiniz ve bu olayı o zaman anlatırken, kendinizi kadere boyun eğmiş, terk edilmiş olarak gösterdiniz. Şimdi olaya yine bir bakın; acaba sizi terk edecek olan birisiyle beraber olmayı siz mi seçtiniz? Ya da bu kişinin sizi terk etmesinin size ne faydası dokundu? Yani düşünmeli ve sorumluluğu almalısınız. Özetle, her şeye farklı açılardan bakmayı öğrenmelisiniz...
Başınıza kötü bir olay geldiğinde, duruma üç farklı açıdan bakın, üç varsayım acaba neler olabilir? Ve bu varsayımdan ne tür yeni bilgiler elde edebilirsiniz? Acaba bu olay karşısında düşünce ve duygularınız nasıl etkilendiler? Bunları da yazın...

Üç Sandalye Metodu:
* Üç sandalye bulun, ikisini karşı karşıya koyun, üçüncüyü daha uzağa ikisine bakar bir yere koyun. Birinciye oturun, karşınızdaki sandalyede başka ya da olay kişinin oturduğunu düşünün. Onu hayal edin ve düşünün, ne hissediyorsunuz? Ona neler derdiniz? Sonuçları yine kaydedin.
* Şimdi karşınızdaki sandalyeye oturun ve o kişi olduğunuzu hayal edin. Onun gözüyle kendinize bakın hatta onu taklit edin ve olayı onun bakış açısından görerek notlarınızı yazın. Yazmayı bitirince, bu karşıt bakış açısının sizi şaşırtan fikirler yaratıp yaratmadığına kafa yorun.
* Sonra üçüncü sandalyeye oturun, bu olayla ilisi olmayan birisi olduğunuzu düşünün, bu kişi gerçek veya hayali birisi olabilir. İsterseniz Leonardo da Vinci olun ve öteki iki sandalyede oturanların çekişmesini seyredin ve anlamaya çalışın, istekleri nedir, neleri gözden kaçırıyorlar? Siz bir bilge olarak nasıl görüyorsunuz, neyi unutuyorlar? Kesin objektif olun ve notlarınızı alın...
* Ama eğer isterseniz bir de göksel varlık yani ilahi bir yardım düşünün, örneğin bir melek olabilir, o zaman da onun ise neler söyleyebileceğini düşünün ve yazın.
Yaşamınızı bir filme benzetiyor musunuz? Hiç sizi kendinizin yerine bir yönetmenin yönettiğini düşündünüz mü?
* Şimdi oturun, gözlerinizi kapayın, birkaç dakika derin nefes alıp verin ve çocukluğunuzdan başlayarak yaşadığınız önemli olayları zihninizde canlandırın.
* Acıları, sevinçleri, başarıları ve hataları, ilişkileri, ailenizi, arkadaşlarınızı herşeyi bir film şeridi gibi düşünün. Ama sadece seyredin, yorum yapmayın yani düşünmeyin.
* Yorulduğunuzda ya da şu ana geldiğinizde filmi dondurun ve dikkatinizi yine soluk alıp vermeye verin. Sonra bunu seyrettiğiniz bir film olarak düşünün, bir başkasının yaptığı film olarak. Sinemadan çıktığınızda ne düşünürsünüz? Film için düşünmez misiniz?
* Bu film, abartılı bir drama mı, komedi mi, polisiye mi, aksiyon veya macera mı, aşk ya da sanat yoksa bir korku filmi mi? Nasıl bir film sizin filminiz?
* Ve şimdi kendinizi Scorsese, Spielberg ya da Fellini gibi ünlü bir yönetmen olarak düşünün ve filmi onlar gibi sizin çektiğinizi ama baştan çektiğinizi düşünün.
* Filmi çekin ve oturup seyredin, bakalım yaşam filminiz nasıl olmuş?

3. FARKINDALIĞI KESKİNLEŞTİR - SENSAZİONE
Deneyimin vanlandırılması için bir araç olarak, duyuların, özellikle de görme duyusunun sürekli inceltilmesi. Leonardo beş duyunun ruhun arçları olduğundan söz ediyordu. Farkında lığını bilerek yaratının derinliklerine nüfuz etti.
Biliyor musunuz? Tanrıyı gördüğümüz göz, kendimizi de gören aynı gözdür. Bizim gözlerimiz ve Tanrının gözü tek bir gözdür, tek bir görüntüdür, tek bir bilgidir ve tek bir sevgidir. Bu anı nasıl yaşayabilirim, diye sorarsınız, cevap acımasız ve kesindir; Yaşadınız bile, sadece farkında olmadınız...

Her soluğumuz, şimdiki zamanda gerçekleşir. İngilizce “ruh” yani “spirit” sözcüğü Latince “soluk almak” anlamına gelen “spirare” sözcüğünden gelir.

Geçmiş için kaygılanmak ya da aklınızı gelecekle ilgili beklentilerle doldurmak yerine dikkatinizi şimdiki ana verin. Farkında olmalısınız...
Birçok öğretide, dünya zevklerini azaltmak, sessizlik, sadelik veya sofuluk ilahi farkındalığın yolu olarak gösterilir, bunlar bazı zamanlarda yararlı olabilirler ama amaç haline getirildiklerinde kişi kendisini geri dönemeyeceği ruhsal bir çıkmaz sokakta bulacaktır. Irmaklarda, dokunduğunuz su akıp geçen suyun sonu ve akıp gelecek suyun başıdır, zaman için de aynı şey geçerlidir.

Mahatma Gandi’nin hocası Tagore, şöyle diyordu;
“Kurtuluş vazgeçmekte değildir, özgürlük beni binlerce lezzet bağıyla kucaklar. Bu çömleği benim için ağzına kadar renk renk hoş kokulu içeceklerle dolduruyorsun. Benim dünyam, onun yüz farklı lambasını senin ateşinle yakacak ve onları senin tapınağına sunacak. Hayır, duyularımın kapılarını hiç kapatmayacağım. Görmenin, duymanın ve dokunmanın tadı senin tadın demek. Evet, benim aydınlanışım ve arzularım sevgi meyveleri verecek.”

* Zamanımın ne kadarını geleceği düşünmeye ve endişelenmeye ayırıyorum.
* Zamanımın ne kadarını geçmişi düşünmeye ve geçmişe endişelenmeye ayırıyorum.
* Zamanımın ne kadarını şimdiyi düşünmeye ve şu ana endişelenmeye ayırıyorum.
* Yaşlandıkça duyularınız keskinleşiyor ve farkında lığım artıyor.
* İçinde bulunduğum çevrenin yaşamımı etkilediğinin farkındayım.
* İçinde bulunduğum dünyaya her gün yeni ve açık bir zihinle bakmaya çalışıyorum.
* Soluğumun devamının ve kalbimin atışının farkındayım.

Leonardo şöyle diyordu; “ Vücudun içinde oturan ruh, kişinin bu vücudun günlük evini nasıl kullandığını gözler. Eğer bu evde, dirlik ve düzen yoksa ruh da vücudu dirlik ve düzenden yoksun bırakır.”

Kendinizi ruhsal olarak yeterince besleyin;
Unutmayın ve dikkat edin ki bizler, ruhsal yönden ********************************** bir dünyada yaşıyoruz; reklamlar, cep telefonları, internet, trafik, yapay yiyecekler, inşaat gürültüleri, kirli hava ve su ve çok zararlı tv programları gibi ruhsal ve aura bozucu bir ortamda saldırı altındayız. Buna karşın kendinize özgün bir ev, oda veya ortam yaratarak ruhunuzu beseleyip dinlendirebilirsiniz.

* Muhakkak gününüzde müzik olsun. Ama dikkatli olun, yoz müzik sizi daha sinirli, moralsiz, umutsuz ve kötümser yapacaktır. Müzik uyum, ritm ve sestir, aydınlanmak, iç huzura ulaşmak için kullanılmalıdır. Arabanızda dinleyeceğiniz sakinleştirici ve uygun müzik sinirlenmenizi engelleyecek belki de yaşamınızı kurtaracaktır.
* Evinizde bir sunağınız olsun, küçük bir mihrap gibi, inancınız doğrultusunda yaratıcı ile ilişkide bulunacağınız özel bir yeriniz olsun.
* Evinizde güzel kokular kullanın. Tütsüler, çiçekler gibi...
* Feng Shui’yi öğrenin ve evinizde uygulayın. Ying ve Yang dengesini uygulayın.
* Enerji dokunuşlarında bulunun. Bir çiçeğin yapraklarına dokunun ve hissedin, saklı enerjiyi ve düzeni algılayın.

4. GÖLGEYE BAĞLAN - SFUMATO
Çok anlamlılığı, çelişkiyi ve belirsizliği kucaklama isteği. Leonardo’nun ışık arayışı onu çok anlamlılığı, çelişkiyi ve belirsizliğikucaklamanın ötesine götürdü. Hem sözcük anlamında, hem de mecazi anlamda karanlığa bağlanmaya ve onu anlamaya sevk etti. Bu çoğu zaman, ruhun izleyeceği yolun kayıp halkasıdır.

C. G. Jung, bilinçaltından, bilincimize çıkaramadığımız şeyin yaşamda karşımıza kader olarak çıkacağını söylüyordu. Leonardo ise; “Nasıl yaşayacağını öğrendiğimi düşünürken, meğer nasıl ölüneceğini öğreniyormuşum” diyordu. Amaç kişiliğin saklı kalan, gölgede kalan tarafını ortaya çıkarmaktır. Örneğin kıskançlık örnek olabilir; kıskançlık kişiyi sahte suçlamalarla yaralar. Erdem doğarken kıskançlığı da doğurur ve kışkırtır. Ne yazık ki, bir gölgenin bedenden ayrılması, erdemin kıskançlıktan ayrılması daha kolaydır.

Gölgenin farkına varmak için:
* Sorumluluk almalıyız,
* Başkalarını suçlamamalıyız,
* Her konuda yavaş yavaş ilerlemeliyiz,
* Farkındalığı derinleştirmeyiz,
* Kusursuz olduğuna inandığımız ülkülerimizden ayrılabilmeliyiz,
* Çelişkilerimizi kabullenmeli ve kalbimizi açmalıyız.

Kendinizi değerlendirmek için deyin ki;
* Öfkemin farkındayım.
* Açgözlülüğümün farkındayım.
* Kıskanç olduğumun ve gıpta ettiğimin farkındayım.
* Bazen, sözlerim ve hareketlerim kin ve horgörü dolu, farkındayım.
* Bazen, sözlerim ve hareketlerim açgözlülük ve hırs dolu, farkındayım.
* Bazen, sözlerim ve hareketlerim korku ve kaygı dolu, farkındayım.
* Dünyadaki kötülüklerin, acının ve kederin farkındayım.
* Eleştirilerimin, yargılarımın ve öfkemin zayıflıklarım olduğunun farkındayım.

5. DENGE KUR - ARTE/SCİENZA
Düşünürken sol ve sağ beynin etkinliği arasında, denge kurmak, beynin bütünlüğü ile düşünmekte zirveye ulaşmak. Leonardo’nun kişiliği ve eserleri mantık ve imgelem, bilim ve sanat arasında dengeden de öte bir ilişkinin kurulduğunu dışa vurur. Bunlar yaratımda eril ve dişil ilkelerin dengesini simgelerler.

Nasıl denge kurabiliriz?
* Ben sabırlı, yeni düşüncelere açık biriyim ve iyi bir dinleyiciyim.
* Kendi içimdeki karşıt cinsle ilişki halindeyim.
* Cesur ve iddialıyım, nasıl insiyatif alacağımı biliyorum.
* Cesurca eyleme geçebilir veya cesurca geçmeyebilirim.
* Biliyorum ki, karşıt cinsler arasındaki gerilim değerlidir.
* Bir okuma grubu kurun. Fikirleri tartışın ve dinlemesini öğrenin.

6. BÜTÜNLEŞMEYİ BESLE - CORPORALİTA
Her iki elin aynı beceride kullanılması, zerafet, bedenen formda olma ve güzellik sayesinde aklın ve bedenin bütünleşmesi. Leonardo’nun göze çarpan fiziksel özellikleri ve anatomi, şifa ve sağlık konularındaki dikkate değer bilgisi, onun bedeninin, enerjisinin ve ruhunun bütünleşmiş olmasının bir ifadesidir.

Mikrokozmos nasılsa makrokozmos da öyledir. Atom nasılsa evren de öyledir. İnsan vücudu nasılsa kozmik vücut da öyledir. İnsan aklı nasılsa kozmik akıl da öyledir. Makro düzeyde evreni yöneten güçler mikro düzeyde bireyi yönetir. Hayat tektir ama onun bütün biçimleri son derece karmaşık ve bölünmez bir bütünle ilgilidir. Allta yatan birlik, mikro evren ile makro evren arasında bir köprü oluşturur.

Bütünleşmeyi beslemenin yolu;
* Bedenim mekanik bir nesnedir.
* Bedenim bir enerji sistemidir.
* Sağlığımdan ve mutluluğumdan sorumluyum.
* Davranışlarımın, sağlığımı etkilediğinin farkındayım.
* Bedenimdeki enerji akışını hissediyorum.
* Bedenimdeki enerji akışıyla, dünyadaki enerji akışı arasında uyum sağlıyorum.
* Bedenimi bir ibadethane olarak görüyor ve öyle yaşıyorum.
* Cinsellik kutsal bir niteliktir.

Altı önemli enerjiyi çekin ve kullanın. İşte yöntemler;
* Toprak enerjisi, bir tarlada veya bahçede ayaklarınızı sıkıca yer basın, kollarınızı avuçlarınız yere dönük olarak uzatın, sırtınız dik olarak yavaşça yere çömelin sonra yükselin, toprak enerjisinin size aktığını hissedin, bunu sekiz kez tekrar edin.
* Güneş enerjisi, sabah güneşinde ellerinizi göğsünüzde kavuşturun, sonra öne uzatın ve avuçlarınızı güneşe açın, tekrar göğsünezde kavuşturun, altın güneş enerjisinin size aktığını hissedin, sekiz kez tekrar edin.
* Okyanus enerjisi, deniz kenarında yine elleriniz göğsünüzde kavuşuk olsun, sonra kollarınızı ve ve bacaklarınızı iki yana açın, açıp kapatırken derin nefes alıp verin, denizin güçlü enerjisinin size yıkadığını hissedin, bunu sekiz kez tekrar edin.
* Gök enerjisi, güzel ve yıldızlı bir gecede bahçe veya balkonda kollarınızı dik olarak yukarı kaldırın ve nefes alın, sonra bir daire çizerek yere indirin, yere paralel olarak tutarken nefes verin, göğün, yıldızların ve ayın enerjisinin size aktığını hissedin, bunu on kez tekrar edin.
* Evrenin enerjisi, yine gök enerjisi ortamında kollarınızı yukarı kaldırırken nefes alın, sonra yere indirip yere paralel tutup nefes verin, toprağın, güneşin, okyanusun ve göğün enerjisinin sizin merkezinize aktığını hissedin, bunu sekiz kez tekrar edin. bunu beş kez tekrar edin.
* Ve çok gülün, karnınızdan kahkaha atarak gülün. Evde kendi kendinize çalışın, karın kaslarınızla kahkahanızı bütünleştirin.

7. SEVGİYİ YAŞA - CONNESİONE
Herşeyin ve bütün fenomenlerin birbirleriyle bağlı olduğunu anlamak ve takdir etmek; sistemler düşüncesi. Leonardo, “herşeyin bir başka şeye bağlı olduğunu” biliyordu. Yaratılan herşeyin birbiriyle ilişkili ve evrenin tanrısal sevginin bir dışavurumu olduğu anlayışına işaret ediyordu.

Sufiler diyor ki; Akıllı akılsız herkes, yana yakıla sevgililerini arayan insanlar gibi, camilerde, kiliselerde, tapınaklarda O’nu arıyorlar. Tek Tanrı Sevgi Tanrısı olduğu için ve insanları buralara sevgi çağırdığı için her yer O’nun evidir.

Sevgiyi yaşamanın yolları;
* Kendimi kendi egomdan daha öte birşeye bağlı hissediyorum.
* Bu bağlılığı her gün bilinçli olarak besliyorum.
* Anneme, babama ve akrabalarıma bilinçli olarak şefkat doluyum.
* İş arkadaşlarıma da bilinçli olarak şefkat doluyum.
* Rasgele karşılaştığım insanlara karşı iyi niyetliyim.
* Vermenin ve almanın her günü yaşamak olduğuna inanıyorum.
* Beni sevmeyenlerin nedenlerini anlamalı ve onları etkilemeliyim.

İyiliğin ve hayır yapmanın yedi aşaması:
1. Ahmet yardımseverdir ama isteksizdir.
2. Ahmet ancak kendisinden yardım istenince yardım eder.
3. Ahmet’ten yardım istenir ve Ahmet yardıma muhtaç Mehmet’e doğrudan yardım eder. Ama Ahmet bundan keyif alır fakat Mehmet utanır.
4. Ahmet ve Mehmet birbirlerini bilirler ama yardım istenmeden yapılır.
5. Ahmet, Mehmet’i tanımaz ama Mehmet Ahmet’in kim olduğunu bilir ve kendini ona karşı borçlu hisseder.
6. Ahmet kime yardım edeceğini bilir ama Mehmet Ahmet’i tanımaz, bu durumda Ahmet hayır yapmaktan hoşlanır ve Mehmet üzerinde hakkı olduğunu düşünür.
7. Amhet ve Mehmet birbirlerini tanımazlar yani yardım sadece hayır yapmış olmak için yapılır. Ahmet kime yardım ettiğini bilmez ve kendini önemsemez, Mehmet ise kendini kimseye borçlu hissetmez.

Ve sonuç:
Leonardo’nun 7 Altın Öğüdü:

1. Amaçlarınızın ve eylemlerinizin tüm sorumluluğunu alma cesaretini gösterin.
2. İç algı gözünüzü açın,varolduğunuz her anın tadını çıkarın.
3. Kendinizden hoşnut olmanın ışığı, kişiliğinizin en karanlık köşelerini aydınlatsın.
4. Mona Lisa gibi sizin yüzünüzde de, dişil ve eril bileşimin gülümsemesi olsun.
5. Bedeniniz, duygularınız, aklınız ve ruhunuz bütünleşsin ki, içinizdeki sınırsız enerjiyi hissedin, yaşam dolu ve sağlıklı olun.
6. Yaşamınız güzellik, sevinç, iyilik ve sevgiyle olsun.
7. Leonardo gibi bütünlüğe ve gerçeğe ulaşmak için araştırın ve araştırmaktan bıkmayın.

Quick Sort nedir, Quick Sort algoritması nasıl çalışır, konu anlatımı, örnek, Quick Sort örnek,Hızlı sıralama, Hızlı sıralama konu anlatımı, Hızlı sıralama örnek

Bu algoritmanın en iyi, ortalama, ve en kötü çalışma permansı şöyledir:

     Best Average             Worst
Ω(n log(n))         θ(n log(n))             O(n^2)

Aşağıdaki gibi bir array'imiz olsun. Array'in en ortadaki elemanını pivot olarak belirleriz. Pivotta küçük olan sayılar pivot'un soluna gelecek, pivottan büyük sayılar pivotun sağına gelecek şekilde düzenleriz. Bunu da şöyle yaparız:
Array'i başından ve sonundan itibaren taramaya başlarız.Soldan tarayıp pivottan büyük bir eleman bulur ve sağdan tarayıp pivottan küçük bir eleman bulur, birbirleriyle swap ederiz. Pivota eşit sayıları ise sağa ya da sola taşıyabiliriz. Array'imizin pivottan küçük olanlar ve pivottan büyük olanlar ayrılma işlemi tamamlandığında , aynı şeyi bu array'lere(yani pivottan küçük olanların oluşturduğu array'a ve pivottan büyük olanların oluşturduğu array'a) de uygularız.Bunu tek elemanlı array'lere indirgeyene kadar yaparız.
Array'in soldan taramaya başlayalım.
Soldan tararkenki amacımız pivottan büyük bir sayı bulmak ,
Sağdan tararkenki amacımız pivottan küçük bir sayı bulmak,
Ve nihayetinde bu iki sayıyı swap edelim.




6<9 olduğu için taramaya devam et.
14>9 olduğu için a[1] indisini kenara al ve bununla hangi sayıyı swap yapacağımızı bulmak için sağdan taramaya başla.
1<9 olduğu için a[9] elemanını da kenara al . a[1] ve a[9] 'u swap et.








Kaldığımız yerden taramaya devam edelim.
-3<9 olduğu için taramaya devam et.
24>9 olduğu için a[3] indisini kenara al ve bununla hangi sayıyı swap yapacağımızı bulmak için sağdan taramaya başla.
5<9 olduğu için a[8] elemanını da kenara al.  a[3] ve a[8] 'i swap et.








Kaldığımız yerden taramaya devam edelim.
Soldaki taramamızda pivotun üzerine geldik. a[4] 'ü kenara al ve bununla hangi sayıyı swap yapacağımızı(öyle bir sayı varsa ) bulmak için sağdan taramaya başla.
8<9 olduğu için a[6] elemanını da kenara al.  a[4] ve a[6] 'i swap et.








Kaldığımız yerden taramaya devam edelim.

Soldan taramamıza devam ediyoruz..a[5]>a[6]
Sağdaki tarama işleminde ise pivotun üzerinde olduğumuz için beklemedeyiz. Dolayısıyla a[6] elemanını da kenara al.  a[5] ve a[6] 'yı swap et.









Kaldığımız yerden taramaya devam edelim.

Her iki taraftan yaptığımız taramada da pivota ulaştığımız için tarama işlemi tamamlandı ve seçtiğimiz pivotun(9'dan) soluna pivottan küçük sayıların , sağına da pivottan büyük sayıları getirmiş olduk.
Şimdi de önce pivottan küçük sayılara sonra pivottan büyük sayılara quick sort algoritmasını uygulayalım.





Quick Sort algoritmasını bu array'e uygulayalım.
Pivot olarak -3'ü seçelim.



Quick sort algoritmasını bu array'e de uygulayalım
Pivot olarak 24'ü seçelim.



Quick sort algoritmasını elimizdeki array'leri parçalayarak (yukarıda olduğu gibi) recursive olarak, tek elemanlı array'lere ulaşana kadar uygularız. Recursion durduğu anda array'imizi sıralı hale getirmişizdir.