Note that there are some explanatory texts on larger screens.

plurals
  1. POScroll not working in AsyncTask
    primarykey
    data
    text
    <p>I am trying to scroll to a substring in a string of 1000 lines. I notice a lag in the scroll and UI thread. So I thought to use a AsyncTask but as its executed I get the text but not scroll. Here is my code</p> <pre><code> private class LongOperation extends AsyncTask&lt;String, Void, String&gt; { @Override protected String doInBackground(String... params) { SharedPreferences score = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); int chapter_number_bookmark = score.getInt("chapter_number", 89); int verse_number_bookmark = score.getInt("verse_number", 1); GoToFunction(chapter_number_bookmark,verse_number_bookmark); return "Executed"; } @Override protected void onPostExecute(String result) { Toast.makeText(getApplicationContext(), "Executed", Toast.LENGTH_SHORT).show(); } @Override protected void onPreExecute() { } @Override protected void onProgressUpdate(Void... values) {} } </code></pre> <p>The GoToFunction</p> <pre><code>public void GoToFunction(int chapter, int verse) { int scroll_amt; final TextView shw = (TextView) findViewById(R.id.textViewTab); SharedPreferences score = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); int chapter_number = chapter; int verse_number = verse; String verse_number_str = Integer.toString(verse_number); SQLiteDatabase as = openOrCreateDatabase("/"+Environment.getExternalStorageDirectory().getPath()+"/tamil/verse", MODE_PRIVATE, null); Cursor a = as.rawQuery("select * from verse"+chapter_number, null); a.moveToFirst(); strTitle = a.getString(a.getColumnIndex("title")); final String strContent_book = a.getString(a.getColumnIndex("content")); int number = a.getInt(a.getColumnIndex("dialogues")); tab.setText("\n\n "+strAthi+strTitle+"\n\n "+strVasa+number+"\n\n "+strContent_book); final int offset_dot = strContent_book.indexOf(verse_number_str_dot); final int offset_comma = strContent_book.indexOf(verse_number_str_comma); a.close(); as.close(); if(offset_comma!=-1||offset_dot!=-1) { if(offset_comma==-1||(offset_dot&lt;offset_comma)) { try { Toast.makeText(getApplicationContext(), "Athiyayam : "+ chapter_number +" Verse : "+ verse_number, Toast.LENGTH_LONG).show(); **scroll(offset_dot); //Scroll function** } catch(Exception e) { Log.e("Scroll_comma", "Exception", e); } } else { try { Toast.makeText(getApplicationContext(), "Athiyayam : "+ chapter_number +" Verse :"+ verse_number, Toast.LENGTH_LONG).show(); scroll(offset_comma); } catch(Exception e) { Log.e("Scroll", "Exception", e); } } } else { Toast.makeText(getApplicationContext(), "Not found", Toast.LENGTH_LONG).show(); } } </code></pre> <p>Scroll Function</p> <pre><code>public void scroll(final int a) { final TextView shw = (TextView) findViewById(R.id.textViewTab); try { mScroll.post(new Runnable() { @Override public void run() { int y = shw.getLayout().getLineForOffset(a); // e.g. I want to scroll to line 40 int n = shw.getLayout().getLineTop(y); mScroll.scrollTo(0, n); } }); } catch(Exception e) { Log.e("scroll", "error", e); } } </code></pre> <p>Here I get the text. But the scroll function doesn't get executed. Also I want to do a spinner activity as the bookmark activity starts and finish as it ends which can be done in PreExecute and PostExecute </p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload