ورود

View Full Version : سوال چگونگی استفاده از PersianReshape در listview



sajadpm
چهارشنبه 25 بهمن 1391, 21:35 عصر
با سلام و خسته نباشید

من از آموزش آقا srfarzad برای فارسی نویسی استفاده می کنم . حالا به مشکل بر خوردم من می خواهم در listview از این PersianReshape استفاده کنم ؟ ممنون می شوم کمکم کنید .

این هم listview :

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_n);


mListView = (ListView) findViewById(R.id.listview);

mAdapter = new SimpleCursorAdapter(getBaseContext(),
R.layout.listview_item_layout,
null,
new String[] { "subn", "sar" },
new int[] { R.id.name, R.id.phone }, 0);

mListView.setAdapter(mAdapter);

mListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
// Get the cursor, positioned to the corresponding row in the result set
Cursor cursor = (Cursor) listView.getItemAtPosition(position);

// Get the state's capital from this row in the database.
String countryCode =
cursor.getString(cursor.getColumnIndexOrThrow("subn"));
Intent intent = new Intent(Lista.this, Subn.class);
intent.putExtra("subn1",countryCode);
startActivity(intent);

}
});}

srfarzad
چهارشنبه 25 بهمن 1391, 22:15 عصر
من اینم در سایت آقای کمالان توضیح دادم..بگریدن در آرشیو سایت هستش آموزش اندروید (http://p30droid.com/) آموزش برنامه نویسی اندروید (http://p30droid.com/) برنامه نویسی اندروید (http://p30droid.com/) اندروید استودیو (http://p30droid.com/) آموزش اندروید استودیو (http://p30droid.com/)

sajadpm
چهارشنبه 25 بهمن 1391, 22:55 عصر
ممنون از شما آقا فرزاد ولی مشکل من این هست که اطلاعات رو از دیتابیس sqlite می گیرم و نمی تونم reshape کنم ؟!

srfarzad
پنج شنبه 26 بهمن 1391, 19:47 عصر
خب باید به ازای هر ایتم که پیدا شد اینکارو کنید.تو یه حلقه بزارید مشکلتون حل میشه آموزش اندروید (http://p30droid.com/) آموزش برنامه نویسی اندروید (http://p30droid.com/) برنامه نویسی اندروید (http://p30droid.com/) اندروید استودیو (http://p30droid.com/) آموزش اندروید استودیو (http://p30droid.com/)

sajadpm
پنج شنبه 26 بهمن 1391, 21:31 عصر
خب باید به ازای هر ایتم که پیدا شد اینکارو کنید.تو یه حلقه بزارید مشکلتون حل میشه

باز هم از راهنمایی شما متشکرم

ولی من از دیشب تا به حال راه های زیادی رو امتحان کردم نشد ممنون می شوم توسط همان کد listview که در بالا قرار دادم توضیح بدهید ! مشکل در گرفتن item ها دارم !

Nevercom
جمعه 27 بهمن 1391, 01:20 صبح
من با simpleCursorAdapter کار نکردم و در این زمینه توصیه ای ندارم (الانم اکلیپس ندارم که متدها رو چک کنم)

اما من همیشه برای کار با دیتابیس و نمایش اون در ListView از روش زیر استفاده می کنم
یک کلاس برای کار با دیتابیس ایجاد می کنم و متدهای مربوط به دیتابیس رو در این کلاس قرار میدم.
برای هر table یه کلاس درست می کنم که چند متغیر داره که درواقع همون فیلدهای دیتابیس هست و متد های getter و setter برای مقداردهی و دریافت مقدار این فیلدها در کلاس.
و یک کلاس Adapter که برای کنترل نمایش داده ها در ListView هست.
اینطوری رو همه چیز کنترل دارید و مثلاً اگر نیاز باشه میتونید خیلی راحت از کلاس Reshape استفاده کنید.

sajadpm
یک شنبه 29 بهمن 1391, 19:27 عصر
تشکر از پاسخ شما

راستش من هنوز کار با آندروید و sqlite اش رو به خوبی یاد نگرفتم برای همین فعلا تونستم با همین کد نتیجه بگیرم ! ولی همون طور که می بینید من نمی تونم آیتم های لیست ویو رو فراخوانی کنم که string بگیرم و بعد reshape کنم ! البته جستجویی که داشتم به view.binder بر خوردم که نمی دونم چرا اینجوری جواب نمیده :

mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int column) {
TextView tv = (TextView) view.findViewById(R.id.phone);

String str_tv = (String) tv.getText().toString();
tv.setText(PersianReshape.reshape(str_tv));

return false;
}
});

ولی Cursor cursor و int column رو باید استفاده کنم که نمی دونم چه جوری هست ؟ اگر کسی میدونه لطفا کمک کنه