Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
6Kullanıcıya ait forum aktivitesi bulunmamaktadır.
İçerideki Görüntüyü Nasıl Yapabilirim..!
Toolbar, Tablayout, Viewpager, Swipe ve Fragment konularını araştırarak aynı tasarımı yapabilirsin. Hatta yapılmış bir çok örneğini de bulabilirsin.
Get Post methodlarında Cookie aktarım sorunu
okhttp için :
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(new CookieJar() {
private final HashMap<HttpUrl, List<Cookie>> cookieStore = new HashMap<>();
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
cookieStore.put(url, cookies);
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
List<Cookie> cookies = cookieStore.get(url);
return cookies != null ? cookies : new ArrayList<Cookie>();
}
})
.build();
şeklinde kullanabilirsin ya da java.net.CookieManager kullanabilmek için okhttp-urlconnection'ı projene eklemen gerek.
dependencies {
compile "com.squareup.okhttp3:okhttp-urlconnection:3.0.0"
}
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(new JavaNetCookieJar(cookieManager))
.build();
android listview adapter
Selam,
Bunu custom listview adapter yazarak halledebilirsin.
public class AdvancedListAdapter extends ArrayAdapter < Object > {
private View view;
private LayoutInflater inflater;
private List < Object > objects;
public static class ViewHolder {
public TextView textView1;
public TextView textView2;
public TextView textView3;
public TextView textView4;
public TextView textView5;
public CheckBox checkBox1;
public Spinner spinner;
}
//Constructor
public AdvancedListAdapter(Context context, List < Object > objects) {
super(context, -1, objects);
this.objects = objects;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public void addAll(Collection < ? extends Object > collection) {
for (Object oj: collection) {
objects.add(oj);
}
}
@Override
public long getItemId(int position) {
return position;
}
public List < Object > getItems() {
if (objects != null)
return objects;
return new ArrayList < Object > ();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
view = convertView;
if (view == null) {
if (getItem(position) instanceof Person) {
view = inflater.inflate(R.layout.list_item_person, parent, false);
} else if (getItem(position) instanceof EquipmentAsset) {
view = inflater.inflate(R.layout.list_item_equipment_asset, parent, false);
}
holder = new ViewHolder();
holder.textView1 = (TextView) view.findViewById(R.id.textView1);
holder.textView2 = (TextView) view.findViewById(R.id.textView2);
holder.textView3 = (TextView) view.findViewById(R.id.textView3);
holder.textView4 = (TextView) view.findViewById(R.id.textView4);
holder.textView5 = (TextView) view.findViewById(R.id.textView5);
holder.spinner = (Spinner) view.findViewById(R.id.spStatus);
holder.checkBox1 = (CheckkBox) view.findViewById(R.id.checkBox1);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
Object item = getItem(position);
if (item instanceof Person) {
populateForPerson(holder, (Person) item, position);
} else if (item instanceof EquipmentAsset) {
populateForEquipmentAsset(holder, (EquipmentAsset) item, position);
}
return view;
}
public void populateForPerson(ViewHolder holder, Person person, int position) {
holder.textView1.setText(person.getPersonID());
holder.textView2.setText(person.getUserName());
holder.textView3.setText(person.getDepartment());
holder.textView4.setText(person.getTitle());
holder.textView5.setText(person.getLocation());
}
public void populateForEquipmentAsset(ViewHolder holder, EquipmentAsset equipmentAsset, int position) {
holder.textView1.setText(equipmentAsset.getSerialnum());
holder.textView2.setText(equipmentAsset.getItemnum());
holder.textView3.setText(equipmentAsset.getItemDesc());
holder.textView4.setText(equipmentAsset.getAssetNum());
holder.textView5.setText(equipmentAsset.getDescription());
holder.textView6.setText(equipmentAsset.getLocation());
holder.textView7.setText(equipmentAsset.getStatus());
checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (checkBox1.isChecked()) {
//...
} else {
//...
}
}
});
holder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView < ? > parent, View view, int position, long id) {
//...
}
@Override
public void onNothingSelected(AdapterView < ? > parent) {}
});
}
}
Objeleri kendi kullandığın objelere göre düzenlemeyi unutma. Yazdığın classı da activityden şu şekilde çağırabilirsin :
public class PersonActivity extends FragmentActivity {
private AdvancedListAdapter personAdapter;
private ListView listViewPerson;
private ArrayList < Person > personList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_hedehodo);
initializeUI();
if (personAdapter == null) {
personAdapter = new AdvancedListAdapter(this, new ArrayList < Object > ());
}
personAdapter.clear(); //adapter içindeki verileri siler
personAdapter.addAll(personList); //refere edilen listeyi adaptere yükler
personAdapter.notifyDataSetChanged();
}
private void initializeUI() {
listViewPerson = (ListView) findViewById(R.id.listViewPerson);
}
@Override
protected void onResume() {
super.onResume();
listViewPerson.setAdapter(personAdapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
Unutmaman gereken bir nokta da ArrayList sınıfından olan person objesinin null veya boş olmaması.
İyi çalışmalar
Android Fragment ?
Soruları doğru anlatamamışsın fazla genel olmuş ve birçok yerde ne dediğin anlaşılamıyor maalesef.
Boş bir activity üzerinde view objelerle tetikleyerek fragmentlarını istediğin gibi kullanabilirsin. İkinci sorun için ise giriş yapan kullanıcının admin veya normal kullanıcı olup olmadığını nasıl denetleyeceğine dair bilgi vermemişsin. Yazdığın program kişinin admin veya normal kullanıcı olduğuna dair bilgiyi nereden alacak? Login olurken servise mi gideceksin, remote database'e mi bağlanacaksın, datayı localde mi tutacaksın herhangi bir bilgi yok. Kullanıcı yetkisine göre fragment oluşturabilir veya view objelerinin VISIBILITY'lerini değiştirerek kullanabilirsin.
Dışarıdan Sqlite ile veri çekerken sıkıntı yaşıyorum(yardım)
Paylaştığın kodda herhangi bir "CREATE TABLE" komutu göremedim. Tabloyu oluşturduğuna emin misin ?
DatabaseHelper classındaki onCreate methoduna
db.execSQL("CREATE TABLE TABLOADI(COLON_1 TYPE, COLON_2 TYPE,..., COLON_N TYPE)");
satırını gerekli düzenlemeleri yaparak eklemen yeterli oalcaktır. Bu arada bu satırı try/catch bloğu içerisine almanı da tavsiye ederim.