ورود

View Full Version : نرم افزاری دارای چند کتاب



mehdidanesh
جمعه 23 مرداد 1394, 21:50 عصر
با سلام
اگر نرم افزاری داشته باشیم که دارای چندین محتوا باشد (چندین کتاب) از چ طریقی بهتر است برنامه نویسی کنیم (خواندن از فایل txt یا sqlite)
نمای کلی برنامه ای که قصد دارم این است:
http://uupload.ir/files/298_booktemp.png

pbm_soy
شنبه 24 مرداد 1394, 03:30 صبح
فرقی ندارد
ولی استفاده از فایل متنی قاعدتا برنامه را سبکتر از برنامه های دیتابیسی خواهد کرد مضافا براینکه شما قرار نیست بروی اطلاعات پردازش خاصی انجام دهید صرفا نمایش است
البته میتوانید از فایلهای xml ویا html نیز استفاده کنید حتما نباید از دیتابیس استفاده کنید و همینطور کارتون راحتتر خواهد شد
مثلا با html کل صفحات کتاب و یا فصل به فصل و یا کل متن را در یک فابل html طراحی کرده و ذخیره کنید و فقط بایک دستور آنرا در وب ویو نمایش دهید حتی میتوانید اون نمای کلی که داده بودید که اول نام کتاب انتخاب میشه و بعد ادامه داده میشه از همونجا میتوانید با html کار کنید
مثلا در فایل اول تعدادی لینک بذارید تحت عنوان کتابها که لینک بشن به فایل محتوای همان کتاب صرفا شما یک فایل برای لیست عنوان کتابها داریسد و برای هر کتاب هم یک فایل دیگر و در اول کار فایل فهرست کتابها را در وب ویو نمایش بدید

mehdidanesh
شنبه 24 مرداد 1394, 08:04 صبح
سلام دوست عزیز
با تشکر از توجه شما
فعلا کارمرو با txt دارم پیش می برم قبول دارم که با html,xml,phonegap کار خیلی اسون تره ولی سرعتشم برام مهمه؛

من اکتیویتی اول و ساختم و در اکتیویتی دوم ی مشکلی هس!!
از دو طریق می تونم عناوینم رو در لیست ویو نمایش بدم
1 از طریق String تعریف شده
2 از طریق عناوین مشخص شده در txt
که من روش اول رو استفاده کردم
حالا مشکل اینجاس:



String[] Book1={"title1","title2"};
String[] Book2={"title3","title4"};

Bundle bun = getIntent().getExtras();
String book_number="", Mark="";

book_number=bun.getString("book_number");
Mark=bun.getString("book_name");

try {
InputStream in = getApplicationContext().getAssets().open(Mark);
if (in != null) {
InputStreamReader tmp = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(tmp);
String str;
StringBuilder buf = new StringBuilder();
while ((str = reader.readLine()) != null) {
buf.append(str + "\n");
}
in.close();

s = buf.toString();

}
} catch (java.io.FileNotFoundException e) {
}

int start=s.indexOf(Mark);
if (start >= 0) {

int end=s.indexOf(Mark,start+1);

if (end > 0) {

if(book_number.equals("Book1"))
{
lv.setAdapter(new ArrayAdapter<String>(this,
R.layout.row_listview, R.id.lable, Book1));
}
else if(book_number.equals("Book2"))
{
lv.setAdapter(new ArrayAdapter<String>(this,
R.layout.row_listview, R.id.lable, Book2));
}
}

در قسمت if که سعی کردم با توجه به key که از اکتیویتی قبل و دریافت کردم و بکار بگیرم و از string های بالا برای افزودن به لیستم استفاده کنم
حالا نمیدونم مشکل از کجاس که این کارو انجام نمیده
ممنون می شم اگه کمک کنید
با تشکر

jamal_ch
شنبه 24 مرداد 1394, 10:58 صبح
به نظر من بهتره از اسکیوال لایت استفاده کنی
و سه تا جدول بسازی جدول اول نام کتابها
جدول دوم نام موضوع ها به همراه ایدی کتاب
جدول سوم مطالب به همراه id موضوع
اینروش برای این راحتره چون برنامه رو یک بار مینویسی ,وبعد تولید محتوا میکنی وبرای همیشه ساختار مناسبی داره

Apriliyaa
شنبه 24 مرداد 1394, 11:37 صبح
https://cafebazaar.ir/app/ir.gilan.foor/?l=fa

با اسکیو لایت کار کن

mehdidanesh
شنبه 24 مرداد 1394, 12:14 عصر
من جدولی رو ک گفتید ساختم در لینک زیر

http://s6.picofile.com/file/8206373768/book.html

اگه امکان داره ادامه بدیم!؟