當前位置:首頁 » 安卓系統 » android分頁

android分頁

發布時間: 2022-04-13 09:51:47

1. android編程:讀取txt格式文件時怎樣實現分頁顯示

ing 來是不行的。。要考慮大文件,50MB 的txt ,你不能先讀完吧,先思考,搜索一下前輩怎麼做的。

想好流程和方法後,再開始寫,可以紙上畫畫,寫之前去想的時間比開始寫到寫好時間長的時候,就對了,雖然基本不現實,大概就那個意思

簡述一種做法:
得到txt file path
使用InputStream 類來讀文件,返回一個byte[] ,讀多少?--只要當前一屏幕的內容
然後獲取文件編碼格式 byte[] 轉換為String : 例如new String(byte[] buffer, "UTF-8");
然後吧String 畫出來,不是TextView 顯示出來,是View 或者SurfaceView 去畫出來,1個字1個字,或者一行一行,draw()出來

好了,這就是一種做法,利用InputStream 類讀文件可以設置開始讀的位置,讀多少,來翻頁(重復上訴過程,再畫一屏幕)

你要學的還很多。

2. android listview 分頁顯示載入第二頁之後怎麼是從第一條開始顯示的

你要顯示的數據應該是保存在一個List集合里的,只需要把新查詢出的數據加入到原本數據的集合中,在調用adapter.notifyDataSetChange()方法就可以了。
估計你是用第二頁的數據替換帶第一頁的數據了或是把第二頁的數據放到集合前面了。

3. android軟體開發怎樣實現分頁功能

ListView分頁:
(一)、目的:
Android 應用開發中,採用ListView組件來展示數據是很常用的功能,當一個應用要展現很多的數據時,一般情況下都不會把所有的數據一次就展示出來,而是通過 分頁的形式來展示數據,這樣會有更好的用戶體驗。因此,很多應用都是採用分批次載入的形式來獲取用戶所需的數據。例如:微博客戶端可能會在用戶滑 動至列表底端時自動載入下一頁數據,也可能在底部放置一個"查看更多"按鈕,用戶點擊後,載入下一頁數據。
(二)、核心技術點:
藉助 ListView組件的OnScrollListener監聽事件,去判斷何時該載入新數據;
往伺服器get傳遞表示頁碼的參數:page。而該page會每載入一屏數據後自動加一;
利用addAll()方法不斷往list集合末端添加新數據,使得適配器的數據源每新載入一屏數據就發生變化;
利用適配器對象的notifyDataSetChanged()方法。該方法的作用是通知適配器自己及與該數據有關的view,數據已經發生變動,要刷新自己、更新數據。

(三)、 OnScrollListener監聽事件 :
1、該監聽器中有兩個需要實現的方法:
onScrollStateChanged(AbsListView view, int scrollState):監聽屏幕的滾動狀態的變動情況
onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount):監聽屏幕滾動的item的數量
2、 scrollState 回調順序如下:
第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1):表示正在滾動。當屏幕滾動且用戶使用的觸碰或手指還在屏幕上時為1
第2次:scrollState =SCROLL_STATE_FLING(2) :表示手指做了拋的動作(手指離開屏幕前,用力滑了一下,屏幕產生慣性滑動)。
第3次:scrollState =SCROLL_STATE_IDLE(0) :表示屏幕已停止。屏幕停止滾動時為0。
3、 onScroll中參數講解:
firstVisibleItem:當前窗口中能看見的第一個列表項ID(從0開始)
visibleItemCount:當前窗口中能看見的列表項的個數(小半個也算)
totalItemCount:列表項的總數
4、思路:
當滾到最後一條,載入新數據;
適配器的數據源要進行累加:totalList.addAll(list);
數據發生變化,適配器通知:adapter.notifyDataSetChanged();【牢記】
判斷是否滾到最後一行。
(五)、核心代碼:

1、布局文件的核心代碼:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ListView
android:id="@+id/listView_main"
android:layout_below="@+id/button_main_init"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>

<LinearLayout
android:id="@+id/layout_main_nextpage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#000"
android:visibility="invisible"
android:gravity="center"
android:onClick="clickButton"
android:padding="5dp">

<ProgressBar
android:id="@+id/progressBar_main"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/text_main_nextpage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:textSize="18sp"
android:onClick="clickButton"
android:textColor="#fff"
android:text="點擊載入更多數據"/>
</LinearLayout>

</RelativeLayout>
2、Activity頁面核心代碼:

publicclass MainActivity extends Activity {
privateStringTAG= "MainActivity";
privateListView listView_main;
privateLinearLayout layout_main_nextpage;

private MysqliteDatabaseHelper dbHelper = null;

// 用於分頁顯示數據的屬性
privateintpageSize= 30;// 每頁顯示的條數
privateintcurPage= 1;
privateintrowCount= 0;
privateintpageCount= 0;// 總頁數

privatebooleanisBottom=false;// 判斷是否滾動到數據最後一條
private List<Map<String, Object>> totalList = null;// 載入到適配器中的數據源
private SimpleAdapter adapter = null;

@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

listView_main = (ListView) findViewById(R.id.listView_main);
layout_main_nextpage = (LinearLayout) findViewById(R.id.layout_main_nextpage);

// 實例化訪問資料庫幫助類
dbHelper = new MySQLiteDatabaseHelper();
// 獲取數據表一共有多少條,從而計算共有多少頁
rowCount=dbHelper.selectCount("select id from android_basic",null);
// 計算總頁碼數
pageCount = (int) Math.ceil(rowCount / (float) pageSize);

// 如果當前頁為第一頁,則數據源集合中就是第一頁的內容
if (curPage == 1) {
totalList = getCurpageList(1);
}
adapter = new SimpleAdapter(this, totalList,
R.layout.item_listview_main, new String[] { "_id", "title" },
newint[] { R.id.text_item_listview_id,
R.id.text_item_listview_title});
listView_main.setAdapter(adapter);

// 給ListView對象設置滾動監聽器,以此來判斷是否已經滾動到最後一條,從而決定是否載入新數據
listView_main.setOnScrollListener(new OnScrollListener() {
@Override
publicvoid onScrollStateChanged(AbsListView view, int scrollState) {
if (isBottom) {
// 如果滾到最後一條數據(即:屏幕最底端),則顯示:「載入更多新數據」
if(curPage < pageCount) {
layout_main_nextpage.setVisibility(View.VISIBLE);
}
} else {
layout_main_nextpage.setVisibility(View.GONE);
}
}

@Override
publicvoid onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// Log.i(TAG, "==" + firstVisibleItem + ":::" + visibleItemCount
// + ":::" + totalItemCount);
// 判斷是否已經滾動到了最後一條,從而決定是否提示載入新數據
isBottom = (firstVisibleItem + visibleItemCount == totalItemCount);
}
});
}

publicvoid clickButton(View view) {
switch (view.getId()) {
caseR.id.layout_main_nextpage:
// Log.i(TAG, "==" + curPage + ":::" + pageCount);
// 如果不是最後一頁,則讓當前頁碼累加,讓數據源累加新數據,並通知適配器信息發生變化
if(curPage < pageCount) {
curPage++;
totalList.addAll(getCurpageList(curPage));
adapter.notifyDataSetChanged();
}
// 只要點擊了提示「載入新數據」的信息,就讓其隱藏
layout_main_nextpage.setVisibility(View.GONE);
break;
default:
break;
}
}

// 獲取每一頁的數據,返回List集合
private List<Map<String, Object>> getCurpageList(int currentPage) {
int offset = (currentPage - 1) * pageSize;
String sql = "select id _id ,title from android_basic limit ? , ?";
returndbHelper.selectData(sql, new String[] { offset + "",
pageSize + "" });
}

}

4. Android開源項目PDFView如何加分頁

使用拆分文檔功能。
在PDF編輯器中,對pdf文件進行分頁,還可以使用拆分文檔功能。拆分文檔功能在功能欄的「文檔」中。在點擊拆分文檔後,同樣會彈出對應的對話框,我們將其中設置調整一下,其中每次拆分頁數是可以根據需求進行更改的,在完善好其他設置之後,點擊確定即可完成pdf分頁的操作。

5. 如何在android studio 中的分頁滑動中使用其布局中的listview

這個是Viewpager 嵌套fragment 實現的 listview 的點擊監聽器OnItemClickListener 可以實現點擊進入相對應頁面

6. android textview如何分頁顯示

textview不能分頁的吧。。。據我所知,只能用scrollview

哦,那你這個想法……變數很大啊,因為你還要去分辨不同手機的屏幕解析度,來確定一個textview能顯示多少像素,來計算一屏幕能顯示多少字。。。

7. android中的listview怎樣實現分頁顯示

給你個思路哈,布局的時候一個listview,下面添加上一頁下一頁按鈕,比如每頁顯示10頁,那麼對於數據的處理,可以通過AsyncTask或者Thread非同步獲取數據並更新listview綁定的數據集,之後通過listview的adapter自帶的notifyDataSetChanged來更新視圖,對於數據的處理,說說我能想到的兩種方式吧

  1. 每次只獲取1頁的數據(通過sql語句可控)並記住數據的編號,之後每次點擊上一頁或者下一頁都重新獲取並更新

  2. 獲取所有的數據,每次顯示一部分。

這就是我粗淺的方案了啊,希望對你有幫助哦~如果有更靠譜的方案記得要分享哈。

8. 如何使用Android UI Fragment開發分頁界面

需要在activity視圖層級結構中為fragment視圖安排位置,創建fragment容器布局:
step1/3 創建Fragment容器布局
activity_crime.xml
<FragmeLayout xmlns:android:"https://schemas.android.com/apk/res/android"
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

step2/3 創建UI Fragment
但此時,activity還未託管fragment,所以代碼運行後UI看不到任何內容。接下來需要編寫代碼,創建UI Fragment,覆寫fragment的生命周期函數(幾乎對應到activity的聲明周期函數)。 創建fragment和創建activity步驟相同:定義布局文件、創建fragment子類、在代碼中關聯布局文件聲明的組件。
public class CrimeFragment extends Fragment {
private Crime mCrime;
private EditText mTitleField;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCrime = new Crime();
}

@Override
// 由onCreateView方法生成fragment的視圖
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_crime, parent, false);
// 調用View.findViewById(int)
mTitleField = (EditText)v.findViewById(R.id.crime_title);
// 監聽器方法設置和activity一樣
mTitleField.addTextChangedListener(new TextWathcer() {
public void onTextChanged(...) {}
public void beforeTextChanged(...) {}
public void afterTextChanged(...) {}
});

return v;
}
}

step3/3 添加UI Fragment到FragmentManager
但此時運行,仍然看不到fragment,還需要將fragment的視圖放置到FrameLayout容器中,以添加給activity。所以並沒有「start fragment」這個概念。 FragmentManager類負責管理fragment並將它們的視圖添加到activity的視圖層級結構中。fragment transactions(事務)被用來添加、移除、附加、分離或替換fragment隊列中的fragment。這是使用fragment在運行時組裝和重新組裝用戶界面的核心方式。FragmentManager管理著fragment transactions的回退棧。
import android.support.v4.app.Fragment
public class CrimeActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime);

FragmentManager fm = getSupportFragmentManager();

// 使用R.id.fragmentContainer的容器視圖資源ID,向FragmentManager請求獲取fragment。如要獲取的fragment在隊列中已經存在,FragmentManager隨即會將之返還。
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);

// 如指定容器視圖資源ID的fragment不存在,則fragment變數為空值。
// 這時應創建一個新的CrimeFragment,並創建一個新的fragment transaction用來把新建的fragment添加到隊列中。
if (fragment == null) {
fragment = new CrimeFragment();
fm.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.commit();
}
}
}

FragmentManager保持fragment與activity的狀態一致,但fragment方法究竟是在activity方法之前還是之後調用的這一點是無法保證的。

9. android studio 怎麼分頁顯示

需要對代碼頁面,右鍵然後會看到一個是否豎直或者橫屏顯示的選項

10. android app 開發 分頁有什麼意義 nearbysearchoption.pagenum;百度地圖po

分頁的意義在於,提高用戶的使用體驗,不用再點擊下一頁的按鈕,滑動進行刷新即可。

熱點內容
androidtimestamp 發布:2024-04-25 09:06:07 瀏覽:608
玩火影筆記本要什麼配置 發布:2024-04-25 08:34:59 瀏覽:209
sql性能監視器 發布:2024-04-25 08:21:48 瀏覽:832
吃雞ak配置什麼最好 發布:2024-04-25 08:15:46 瀏覽:447
firefox緩存目錄 發布:2024-04-25 08:00:31 瀏覽:940
我的世界國服怎麼免費弄伺服器 發布:2024-04-25 08:00:16 瀏覽:540
javaapi源碼 發布:2024-04-25 07:51:15 瀏覽:606
怎麼在伺服器執行jmeter腳本 發布:2024-04-25 07:35:25 瀏覽:397
域名訪問https 發布:2024-04-25 07:16:56 瀏覽:414
javaie亂碼 發布:2024-04-25 07:07:15 瀏覽:602