PDA

View Full Version : جدا كردن قسمت هاي متن و نمايش در ليست ويو



Amin-rz
یک شنبه 15 تیر 1393, 21:29 عصر
سلام.من يه متن txt فارسي دارم كه داخلش تعدادي اس ام اس هست.(تعدادشون معلوم نيست ممكنه كم باشه ممكنه زياد)
اس ام اس ها با **** از هم جدا شدن.
من اين فايل تكست رو مي خونم و تو يه string وارد مي كنم.
حالا مي خوام اين اس ام اس ها رو جدا كنم و تو ليست ويو نشون بدم.
هر الگوريتمي استفاده مي كنم نمي تونم اس ام اس ها رو جدا كنم و تو ليست ويو بذارم.
يكي از استادان عزيز اگه بتونه كد اين كارو واسم بنويسه ممنون ميشم.

rubiks.kde
یک شنبه 15 تیر 1393, 22:11 عصر
اگه پیام ها دقیقا با
**** از هم جدا شده باشن از تابع split استفاده کنید.
این تابع بر اساس **** رشته ها را جدا کرده و نتیجه را به صورت ارایه برمیگردونه

Amin-rz
یک شنبه 15 تیر 1393, 23:42 عصر
اگه پیام ها دقیقا با
**** از هم جدا شده باشن از تابع split استفاده کنید.
این تابع بر اساس **** رشته ها را جدا کرده و نتیجه را به صورت ارایه برمیگردونه

داداش والله من هيچ جوره نتونستم اينكارو بكنم اگه زحمت بكشي كدشو برام بذاري مي تونم كد برناممو صدها خط كمتر كنم.
يكي اين مشكلمه يكي اينكه چطور اين قسمت ها رو به ليست ويو بدم.چون تعداد اس ام اس ها معلوم نيست.

Amin-rz
دوشنبه 16 تیر 1393, 00:36 صبح
اينطوري ميشه؟

بفرض myString متن فارسيه اس ام اس هاست كه از txt دريافت كردم.

String myString = "sms1****sms2****sms3****sms4";
String[] multipleStrings = myString.split ("****");

يعني multipleStrings رو به آدابتر ليست ويو بدم حله؟

rubiks.kde
دوشنبه 16 تیر 1393, 21:53 عصر
اينطوري ميشه؟

بفرض myString متن فارسيه اس ام اس هاست كه از txt دريافت كردم.

String myString = "sms1****sms2****sms3****sms4";
String[] multipleStrings = myString.split ("****");

يعني multipleStrings رو به آدابتر ليست ويو بدم حله؟

اره درسته همین طوری است

akbar8298
سه شنبه 17 تیر 1393, 16:17 عصر
دوست عزیز.

خوب شما میگید که متنتون با **** از هم جدا شده.

من فرض میکنم شما متنتون رو آماده توی یک متغیر استرینگ دارید.

خوب با این متد رشتتون رو به ArrayList تبدیل کنید.

public ArrayList<String> getTextSeperates(String mText){
String[] split = mText.split("\\*\\*\\*\\*");
ArrayList<String> ret = new ArrayList<String>();
for(int i =0;i<split.length;i++){
ret.add(i,split[i]);
}
return ret;
}

خروجی رو به یه Adaptor بده.

Amin-rz
سه شنبه 17 تیر 1393, 18:58 عصر
تو اين كد اگه split رو بدم به آداپتر چه فرقي مي كنه با اينكه ret رو بدم به آداپتر؟

akbar8298
سه شنبه 17 تیر 1393, 20:56 عصر
اگه دقت کنید میبینید که برای تعریف آداپتور باید بصورت زیر عمل کنید.
ArrayAdaptor mAdaptor = new ArrayAdapter(Context,LayputResourceID,ArrayList);

شما نمیتونید ورودی آداپتور رو آرایه استرینگ بدین.

Amin-rz
پنج شنبه 19 تیر 1393, 14:24 عصر
الان من متنو تو رشته data ريختم به طور صحيح.
آداپتر رو هم اينطوري تعريف مي كنم ارور ميده:

ArrayAdaptor mAdaptor = new ArrayAdapter( this , android.R.Layout.simple_list_item_1 , getTextSeperates(data) )

چطوري بايد آداپترو بسازم؟
كد خودم هم كه دو سه پست بالاتر گفتم كار نميده.

Amin-rz
جمعه 20 تیر 1393, 12:54 عصر
دوستان کمک کنید اینو چطور به آداپتر بدم؟

akbar8298
جمعه 20 تیر 1393, 15:34 عصر
log خطا رو کپی کنید ببینیم اررور چیه