gilas1368
جمعه 24 مرداد 1393, 14:09 عصر
سلام به همه
من ی viewpager دارم ک با کلاس زیر ی براش ویو میسازم:
package siavash.com.myapplication;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Siavash on 8/14/2014.
*/
public class PagerView extends Fragment {
int mCurrentPage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle data = getArguments();
/** Getting integer data of the key current_page from the bundle */
mCurrentPage = data.getInt("current_page", 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.pager_layout, container,false);
TextView tv = (TextView ) v.findViewById(R.id.sadegh);
Cursor cursor=GetContentBook();
SetFontName(tv);
if(cursor.getCount()>0){
while (cursor.moveToNext()){
tv.setText(cursor.getString(0));
}
}
return v;
}
private Cursor GetContentBook(){
SQLiteDatabase database=SQLiteDatabase.openDatabase("/data/data/"+getActivity().getPackageName()+"/databases/database",null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT Content FROM Book Where PageNumber="+mCurrentPage;
Cursor cursor = database.rawQuery(selectQuery, null);
return cursor;
}
private void SetFontName(TextView textView){
SQLiteDatabase database=SQLiteDatabase.openDatabase("/data/data/"+getActivity().getPackageName()+"/databases/database",null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
Cursor cursor=database.query("Font",new String[]{"Name"},"Enable=1 and IsSelected=1",null,null,null,null);
if(cursor.getCount()>0){
while (cursor.moveToNext()){
Typeface tf = Typeface.createFromAsset(getActivity().getAssets() ,cursor.getString(0));
textView.setTypeface(tf);
}
}
}
}
با استفاده از کلاس زیرم براش تعداد مشخص میکنم و بهش میگم ک ویوش رو باید از کجا بیاره :
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment=new PagerView();
Bundle data = new Bundle();
data.putInt("current_page", position+1);
fragment.setArguments(data);
return fragment;
}
@Override
public int getCount() {
return GetPageCount();
}
}
از طرفی من ی اکتیویتی دیگ دارم ک لیست فونت های موجود و سایز اون ها رو ب کاربر نمایش میده
حالا میخام زمانیک کاربر فونت و سایزش رو تغییر میده نوع فونت و سایز فونت textview موجود در viewpagerام تغییر کنه
همونطور ک میبینید توی کدی برای ویو گذاشتم ی تابع ب اسم SetFontName دارم اما زمانیک فونت رو تغییر میدم، فونت ی سری از pageها viewpager تغییر میکنه ی سریش تغییر نمیکنه (مثلا page1 تغییر میکنه اما page 2 تغییر نمیکنه باز page 3 تغییر میکنه)
حالا سوال من اینه ک چطوری میشه این مشکل رو حل کرد و اینک اصن آیا این کار اصولیه یا ن؟:متفکر:
اگ روش بهتری شما دارید بهم معرفی کنین
متشکرم
من ی viewpager دارم ک با کلاس زیر ی براش ویو میسازم:
package siavash.com.myapplication;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Siavash on 8/14/2014.
*/
public class PagerView extends Fragment {
int mCurrentPage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle data = getArguments();
/** Getting integer data of the key current_page from the bundle */
mCurrentPage = data.getInt("current_page", 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.pager_layout, container,false);
TextView tv = (TextView ) v.findViewById(R.id.sadegh);
Cursor cursor=GetContentBook();
SetFontName(tv);
if(cursor.getCount()>0){
while (cursor.moveToNext()){
tv.setText(cursor.getString(0));
}
}
return v;
}
private Cursor GetContentBook(){
SQLiteDatabase database=SQLiteDatabase.openDatabase("/data/data/"+getActivity().getPackageName()+"/databases/database",null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT Content FROM Book Where PageNumber="+mCurrentPage;
Cursor cursor = database.rawQuery(selectQuery, null);
return cursor;
}
private void SetFontName(TextView textView){
SQLiteDatabase database=SQLiteDatabase.openDatabase("/data/data/"+getActivity().getPackageName()+"/databases/database",null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
Cursor cursor=database.query("Font",new String[]{"Name"},"Enable=1 and IsSelected=1",null,null,null,null);
if(cursor.getCount()>0){
while (cursor.moveToNext()){
Typeface tf = Typeface.createFromAsset(getActivity().getAssets() ,cursor.getString(0));
textView.setTypeface(tf);
}
}
}
}
با استفاده از کلاس زیرم براش تعداد مشخص میکنم و بهش میگم ک ویوش رو باید از کجا بیاره :
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment=new PagerView();
Bundle data = new Bundle();
data.putInt("current_page", position+1);
fragment.setArguments(data);
return fragment;
}
@Override
public int getCount() {
return GetPageCount();
}
}
از طرفی من ی اکتیویتی دیگ دارم ک لیست فونت های موجود و سایز اون ها رو ب کاربر نمایش میده
حالا میخام زمانیک کاربر فونت و سایزش رو تغییر میده نوع فونت و سایز فونت textview موجود در viewpagerام تغییر کنه
همونطور ک میبینید توی کدی برای ویو گذاشتم ی تابع ب اسم SetFontName دارم اما زمانیک فونت رو تغییر میدم، فونت ی سری از pageها viewpager تغییر میکنه ی سریش تغییر نمیکنه (مثلا page1 تغییر میکنه اما page 2 تغییر نمیکنه باز page 3 تغییر میکنه)
حالا سوال من اینه ک چطوری میشه این مشکل رو حل کرد و اینک اصن آیا این کار اصولیه یا ن؟:متفکر:
اگ روش بهتری شما دارید بهم معرفی کنین
متشکرم