hey you
سه شنبه 27 آبان 1393, 14:10 عصر
سلام دوستان
چطور می تونم کنار آیتم های لیستم گزینه ای شبیه به چشم یا نوشته ای به عنوان "خوانده نشده" داشته باشم که وقتی کاربر وارد آیتم لیست می شه و خارج می شه، اون چشم روشن شده باشه یا عبارت "خوانده نشده" تبدیل به "خوانده شده" بشه
با تشکر
اینم کد آیتم های لیست: (توضیات هم دادم بعضی جاها)
package ...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener ;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class SubTitleActivity extends Activity implements OnItemClickListener, OnItemLongClickListener {
ArrayAdapter<String> adapter;
String[] items;
ListView listy;
SelectingFav db;
int nom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
nom = getIntent().getExtras().getInt("nom");
db = new SelectingFav(this); // farakhanie database alaghemandiha
listy = (ListView) findViewById(R.id.listView1);
setListItems();
listy.setOnItemClickListener(this);
listy.setOnItemLongClickListener(this);
}
private void setListItems() {
items = readItems();
adapter = new OmidAdapter(SubTitleActivity.this, R.layout.list_item, R.id.textView1, items);
listy.setAdapter(adapter);
listy.invalidateViews(); // bazavari list
}
private String[] readItems() { // khandan titrha
InputStream inputStream = null;
StringBuilder sb = null;
String[] itemsa = null;
try {
inputStream = getResources().getAssets().open("cnt" + nom + "/titles.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream),8000);
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
line = line.trim().replace("\ufeff", "").replaceAll("[^\\p{Graph}\n\r\t ]", "");
sb.append(line+"\n");
}
itemsa=sb.toString().split("\n");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return itemsa;
}
private class OmidAdapter extends ArrayAdapter<String>{
private String[] aitems;
public OmidAdapter(Context context, int resource, int textViewResourceId, String[] aitems) {
super(context, resource, textViewResourceId, aitems);
this.aitems = aitems;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row=inflater.inflate(R.layout.list_item, parent, false);
TextView title = (TextView) row.findViewById(R.id.textView1);
TextView subtitle = (TextView) row.findViewById(R.id.textView2);
title.setText(aitems[position]);
// tanzimat font
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getA pplicationContext());
String font_size = pref.getString("font_size", "18");
String font_name = pref.getString("font_name", "font1");
String font_color = pref.getString("font_color", "Black");
title.setTextSize(Integer.valueOf(font_size));
title.setTypeface(Typeface.createFromAsset(getAsse ts(), font_name + ".ttf"));
title.setTextColor(Color.parseColor(font_color));
subtitle.setTypeface(Typeface.createFromAsset(getA ssets(), font_name + ".ttf"));
db.open(); // baz kardan db
if(db.isSelect(nom + "INDX" + aitems[position].trim().replace("\ufeff", "") + "INDX" + position)){ // barresiye inke mored dar favorites hast ya na
subtitle.setText("ثبت شده در لیست علاقمندی ها");
}else{
subtitle.setText("");
}
db.close(); // bastan db
return row;
}
}
@Override
public void onItemClick(AdapterView<?> ad, View v, int position, long id) {
Intent intent = new Intent(SubTitleActivity.this, Content.class);
intent.putExtra("nom", nom);
intent.putExtra("file", "" + (position + 1));
intent.putExtra("title", ad.getItemAtPosition(position).toString());
startActivity(intent);
}
@Override
public boolean onItemLongClick(AdapterView<?> ad, View arg1, int position, long arg3) {
// bargozidan mored
// ezafe kardan titre mored be db
db.open(); // baz kardan db
boolean isin = db.isSelect(nom + "INDX" + ad.getItemAtPosition(position).toString() + "INDX" + position);
db.close(); // bastan db
if(isin){ // barresiye inke mored dar favorites hast ya na
db.open();
db.deleteEntry(nom + "INDX" + ad.getItemAtPosition(position).toString() + "INDX" + position); // hazf az db
db.close();
}else{ // agar nabood
db.open();
db.createEntry(ad.getItemAtPosition(position).toSt ring().trim().replace("\ufeff", ""), nom + "INDX" +
ad.getItemAtPosition(position).toString() + "INDX" + position); // sabt dar db
db.close();
}
setListItems(); //bazavariye list
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
startActivity(new Intent(SubTitleActivity.this, Setting.class));
break;
case R.id.action_about:
startActivity(new Intent(SubTitleActivity.this, About.class));
break;
}
return true;
}
}
چطور می تونم کنار آیتم های لیستم گزینه ای شبیه به چشم یا نوشته ای به عنوان "خوانده نشده" داشته باشم که وقتی کاربر وارد آیتم لیست می شه و خارج می شه، اون چشم روشن شده باشه یا عبارت "خوانده نشده" تبدیل به "خوانده شده" بشه
با تشکر
اینم کد آیتم های لیست: (توضیات هم دادم بعضی جاها)
package ...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener ;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class SubTitleActivity extends Activity implements OnItemClickListener, OnItemLongClickListener {
ArrayAdapter<String> adapter;
String[] items;
ListView listy;
SelectingFav db;
int nom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
nom = getIntent().getExtras().getInt("nom");
db = new SelectingFav(this); // farakhanie database alaghemandiha
listy = (ListView) findViewById(R.id.listView1);
setListItems();
listy.setOnItemClickListener(this);
listy.setOnItemLongClickListener(this);
}
private void setListItems() {
items = readItems();
adapter = new OmidAdapter(SubTitleActivity.this, R.layout.list_item, R.id.textView1, items);
listy.setAdapter(adapter);
listy.invalidateViews(); // bazavari list
}
private String[] readItems() { // khandan titrha
InputStream inputStream = null;
StringBuilder sb = null;
String[] itemsa = null;
try {
inputStream = getResources().getAssets().open("cnt" + nom + "/titles.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream),8000);
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
line = line.trim().replace("\ufeff", "").replaceAll("[^\\p{Graph}\n\r\t ]", "");
sb.append(line+"\n");
}
itemsa=sb.toString().split("\n");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return itemsa;
}
private class OmidAdapter extends ArrayAdapter<String>{
private String[] aitems;
public OmidAdapter(Context context, int resource, int textViewResourceId, String[] aitems) {
super(context, resource, textViewResourceId, aitems);
this.aitems = aitems;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row=inflater.inflate(R.layout.list_item, parent, false);
TextView title = (TextView) row.findViewById(R.id.textView1);
TextView subtitle = (TextView) row.findViewById(R.id.textView2);
title.setText(aitems[position]);
// tanzimat font
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getA pplicationContext());
String font_size = pref.getString("font_size", "18");
String font_name = pref.getString("font_name", "font1");
String font_color = pref.getString("font_color", "Black");
title.setTextSize(Integer.valueOf(font_size));
title.setTypeface(Typeface.createFromAsset(getAsse ts(), font_name + ".ttf"));
title.setTextColor(Color.parseColor(font_color));
subtitle.setTypeface(Typeface.createFromAsset(getA ssets(), font_name + ".ttf"));
db.open(); // baz kardan db
if(db.isSelect(nom + "INDX" + aitems[position].trim().replace("\ufeff", "") + "INDX" + position)){ // barresiye inke mored dar favorites hast ya na
subtitle.setText("ثبت شده در لیست علاقمندی ها");
}else{
subtitle.setText("");
}
db.close(); // bastan db
return row;
}
}
@Override
public void onItemClick(AdapterView<?> ad, View v, int position, long id) {
Intent intent = new Intent(SubTitleActivity.this, Content.class);
intent.putExtra("nom", nom);
intent.putExtra("file", "" + (position + 1));
intent.putExtra("title", ad.getItemAtPosition(position).toString());
startActivity(intent);
}
@Override
public boolean onItemLongClick(AdapterView<?> ad, View arg1, int position, long arg3) {
// bargozidan mored
// ezafe kardan titre mored be db
db.open(); // baz kardan db
boolean isin = db.isSelect(nom + "INDX" + ad.getItemAtPosition(position).toString() + "INDX" + position);
db.close(); // bastan db
if(isin){ // barresiye inke mored dar favorites hast ya na
db.open();
db.deleteEntry(nom + "INDX" + ad.getItemAtPosition(position).toString() + "INDX" + position); // hazf az db
db.close();
}else{ // agar nabood
db.open();
db.createEntry(ad.getItemAtPosition(position).toSt ring().trim().replace("\ufeff", ""), nom + "INDX" +
ad.getItemAtPosition(position).toString() + "INDX" + position); // sabt dar db
db.close();
}
setListItems(); //bazavariye list
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
startActivity(new Intent(SubTitleActivity.this, Setting.class));
break;
case R.id.action_about:
startActivity(new Intent(SubTitleActivity.this, About.class));
break;
}
return true;
}
}