Search Results

Search found 13093 results on 524 pages for 'android widget'.

Page 371/524 | < Previous Page | 367 368 369 370 371 372 373 374 375 376 377 378  | Next Page >

  • Dashboard pattern: HorizontalScrollView with pagination or ScrollView?

    - by Macarse
    I am starting a new application and I am willing to use the Dashboard pattern. For example: The Google IO app uses it: My issue is that the amount of buttons will be more than six. I'm not sure if I should use vertical or horizontal scrolling. Vertical scrolling could be done with a ScrollView or a GridView but I am not sure which would be the easier way to implement the horizontal version. I was thinking of using an HorizontalScrollView but it doesn't have pagination. It should feel similar to the tweetdeck app. How would you implement it?

    Read the article

  • Compass accuracy dilemma

    - by mob1lejunkie
    I need to build compass for my application. From reading the documentation it seems there are two reasonable ways of doing this: Sensor.TYPE_ORIENTATION method: This is the easy way of doing it. The problem with this is it is not accurate. When I compare my reading with Snaptic Compass it is about 10-15 degress off which for my purposes is unacceptable. Sensor.TYPE_ACCELEROMETER, Sensor.TYPE_MAGNETIC_FIELD and getRotationMatrix() in conjunction with remapCoordinateSystem() and getOrientation() method: The documentation says this "is usually more accurate". The problem is regardless of the delay I register with listener the compass goes crazy even when the device is stationary on flat surface. Any suggestions for solving this problem will be greatly appreciated.

    Read the article

  • Reading from txt ruins formatting

    - by Sorin Grecu
    I'm saving some values to a txt file and after that i want to be able to show it in a dialog.All good,done that but though the values in the txt file are formated nicely,like this : Aaaaaaaa 0.55 1 Bbbbb 1 2.2 CCCCCCCCC 3 0.22 When reading and setting them to a textview they get all messy like this : Aaaaaaaa 0.55 1 Bbbbb 1 2.2 CCCCCCCCC 3 0.22 My writting method : FileOutputStream f = new FileOutputStream(file); PrintWriter pw = new PrintWriter(f); for (int n = 0; n < allpret.size() - 1; n++) { if (cant[n] != Float.toString(0) && pret[n] != Float.toString(0)) { String myFormat = "%-20s %-5s %-5s%n"; pw.println(String.format(myFormat, prod[n], cant[n], pret[n])); My reading method : StringBuilder text = new StringBuilder(); try { BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { text.append(line); text.append('\n'); } } catch (IOException e) { } Why does it ruin the amount of spaces and how can i fix this ? Thanks and have a good night !

    Read the article

  • How to schedule an alarm so that the intent is broadcast everytime the date changes?

    - by rogerstone
    I want to schedule an alarm which throws an intent when the date changes. I know that this would do this the job alarms.setRepeating(AlarmManager.RTC_WAKEUP,triggerAtTime, interval,alarmIntent); But what is confusing me is what to put in the triggerAtTime and the interval.It says System.currentTimeMillis() timebase. I might be installing the app on any day so the TriggerAtTime should be midnight of that day and the interval would be 24 hours from there on. How can I acheive this.Can someone tell me what to put in TriggerAtTime and interval in the required format. Thanks

    Read the article

  • Accessing database problem

    - by anarche
    Ok, so I've got an SQLiteOpenHelper that prepares and returns a SQLiteDatabase object; this is written singleton-pattern, so the database is opened once and only closed when the Activity closes. From there I have three database wrappers encapsulating the queries (some returning cursors to datasets, some inserting data) used by the Activity. I want to insert data from one View, then have that automatically update in another View on the same Dialogue. I'm writing this on a notepad and testing on the phone (since the emulator crashes the notepad...), so I can't pull up stacktraces atm. So questions: 1) are there limitations to writing to a database, when there are cursors open on the database? 2) Does a Cursor.requery()? call update the ListView with the cursor as a data connector?

    Read the article

  • Where will this AsyncTask run?

    - by Binoy Babu
    Say I have this code in the AlertDialog.Builder(context) of my application. The question is in which Thread will it run? final Thread myPrettyOperation = new Thread() { @Override public void run() { //Do some really long operation. } }; class MyPrettyTask extends AsyncTask<Void, Integer, Boolean> { protected Boolean doInBackground( Void... voids) { myPrettyOperation.start(); return true; } protected void onProgressUpdate( Integer... progress) { } protected void onPostExecute(Boolean result) { } } new MyPrettyTask().execute();

    Read the article

  • setContentView gives an exception

    - by sukitha
    I have a button and onClick it changes the contentView by setContentView (int layoutResID). It works fine. But if you take the focus to the button by the trackball(making it yellow) and tap on it, it gives the exception. java.lang.IllegalArgumentException: parameter must be a descendant of this view

    Read the article

  • In Google Glass, Menu Items are not shown after XE 17.2 Update, any Solutions?

    - by Amalan Dhananjayan
    This worked when the Glass in on XE12, I have opened the solution after about 2 Months and now with XE17 the menu items are not shown when tapped on the Live card, instead the live card is disappearing. I have updated the GDK, I have changed the code to support the latest GDK sneak peek version 2 changes according to this (https://developers.google.com/glass/release-notes#xe12) This is the code public class MenuActivity extends Activity { private static final String TAG = MenuActivity.class.getSimpleName(); private VisionService.VisionBinder mVisionService; private ServiceConnection mConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { if (service instanceof VisionService.VisionBinder) { mVisionService = (VisionService.VisionBinder) service; openOptionsMenu(); } // No need to keep the service bound. unbindService(this); } @Override public void onServiceDisconnected(ComponentName name) { } }; private boolean mResumed; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bindService(new Intent(this, VisionService.class), mConnection, 0); } @Override protected void onResume() { super.onResume(); mResumed = true; openOptionsMenu(); } @Override protected void onPause() { super.onPause(); mResumed = false; } @Override public void openOptionsMenu() { if (mResumed && mConnection != null) { super.openOptionsMenu(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_send) { mVisionService.requestWorkOrderCard(); finish(); return true; } else if (id == R.id.action_refresh) { mVisionService.requestTopWorkOrders(); finish(); return true; } else if (id == R.id.action_finish) { stopService(new Intent(this, VisionService.class)); finish(); return true; } else { return super.onOptionsItemSelected(item); } } @Override public void onOptionsMenuClosed(Menu menu) { super.onOptionsMenuClosed(menu); } } It would be great if any body could help on this. Thank You

    Read the article

  • Stuck in Infinite Loop while PostInvalidating

    - by Nicholas Roge
    I'm trying to test something, however, the loop I'm using keeps getting stuck while running. It's just a basic lock thread while doing something else before continuing kind of loop. I've double checked that I'm locking AND unlocking the variable I'm using, but regardless it's still stuck in the loop. Here are the segments of code I have that cause the problem: ActualGame.java: Thread thread=new Thread("Dialogue Thread"){ @Override public void run(){ Timer fireTimer=new Timer(); int arrowSequence=0; gameHandler.setOnTouchListener( new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent me) { //Do something. if(!gameHandler.fireTimer.getActive()){ exitLoop=true; } return false; } } ); while(!exitLoop){ while(fireTimer.getActive()||!gameHandler.drawn); c.drawBitmap(SpriteSheet.createSingleBitmap(getResources(), R.drawable.dialogue_box,240,48),-48,0,null); c.drawBitmap(SpriteSheet.createSingleBitmap(getResources(),R.drawable.dialogue_continuearrow,32,16,8,16,arrowSequence,0),-16,8,null); gameHandler.drawn=false; gameHandler.postInvalidate(); if(arrowSequence+1==4){ arrowSequence=0; exitLoop=true; }else{ arrowSequence++; } fireTimer.startWait(100); } gameHandler.setOnTouchListener(gameHandler.defaultOnTouchListener); } }; thread.run(); And the onDraw method of GameHandler: canvas.scale(scale,scale); canvas.translate(((screenWidth/2)-((terrainWidth*scale)/2))/scale,((screenHeight/2)-((terrainHeight*scale)/2))/scale); canvas.drawColor(Color.BLACK); for(int layer=0;layer(less than)tiles.length;layer++){ if(layer==playerLayer){ canvas.drawBitmap(playerSprite.getCurrentSprite(), playerSprite.getPixelLocationX(), playerSprite.getPixelLocationY(), null); continue; } for(int y=0;y(less than)tiles[layer].length;y++){ for(int x=0;x(less than)tiles[layer][y].length;x++){ if(layer==0&&tiles[layer][y][x]==null){ tiles[layer][y][x]=nullTile; } if(tiles[layer][y][x]!=null){ runningFromTileEvent=false; canvas.drawBitmap(tiles[layer][y][x].associatedSprite.getCurrentSprite(),x*tiles[layer][y][x].associatedSprite.spriteWidth,y*tiles[layer][y][x].associatedSprite.spriteHeight,null); } } } } for(int i=0;i(less than)canvasEvents.size();i++){ if(canvasEvents.elementAt(i).condition(this)){ canvasEvents.elementAt(i).run(canvas,this); } } Log.e("JapaneseTutor","Got here.[1]"); drawn=true; Log.e("JapaneseTutor","Got here.[2]"); If you need to see the Timer class, or the full length of the GameHandler or ActualGame classes, just let me know.

    Read the article

  • How can you tell if an activities state is stored?

    - by Joren
    I have an activity which pulls some JSON from my server, and then uses it to draw a list. That list launches further activities. My problem is that I can't figure out a way to tell if the activity is still alive when you go back to it, so I end up re-querying my JSON from the server and redrawing the list every time the user goes back to the activity. How can I tell if my activity is still alive so I can skip the redraw?

    Read the article

  • Get the running page in an application

    - by sairam333
    Hi I want to get the running page in application again we start the application after clicking the home button.In my application when i click home and run that application every time it run from starting on wards.But I want a page where we press the home button in an emulator.For that what can i do?Thanka in advance

    Read the article

  • getAssetFileDescriptor from ZipResourceFile merges all mp3 in mediaplayer SOLVED

    - by Jordi
    I've a program with an Expansion file that stores 4 mp3 in a obb file (zip without compression). I can retrieve the data, but instead of taking the audio file i asked for, it merges ALL audio files in the same AssetFileDescriptor. ---SOLVED--- with the fixes Support class public AssetFileDescriptor getaudio(){ ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(c,21,21); AssetFileDescriptor afd=null; if(take==1) { afd = expansionFile.getAssetFileDescriptor("file01.mp3"); }else if(take==2 { afd = expansionFile.getAssetFileDescriptor("file02.mp3"); } //more els eif ............ return afd; } In the MediaPlayer class AssetFileDescriptor fd = Llistat.getInstance().getAudio(); mPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(),fd.getLength()); mPlayer.prepare(); fd.close(); My problem was that i directly was returning and using a FileDescriptor, while i was needing the AssetFileDescriptor to take its StartOffset and Length.

    Read the article

  • JNI: Passing multiple parameters in the function signature for GetMethodID

    - by Jary
    I am trying to execute a function in Java (from C) that has the following signature: public void execute(int x, int y, int action); My problem is to define the function signature in GetMethodID: env->GetMethodID(hostClass, "execute", "(I;I;I;)V"); The problem I ma getting is: W/dalvikvm( 1849): Bogus method descriptor: (I;I;I;)V W/dalvikvm( 1849): Bogus method descriptor: (I;I;I;)V D/dalvikvm( 1849): GetMethodID: method not found: Lcom/device/client/HostConnection;.execute:(I;I;I;)V I am not sure how to specify the method signature in GetMethodID (for 3 integers as parameters). I saw people use the ";" to separate parameters in other posts for the String and File class, but nothing with primitives like integer. What would be the correct way to do this please? Thank you.

    Read the article

  • How to keep activity on Force Close?

    - by SushiRoll
    I have this piece of code that's really prone to errors so I wrapped it with try{}catch statement. I don't want to go back to the previous activity, I just want it to stay on the current activity so that the user can edit whatever is wrong with them. How do I implement this? try{ orgi.insertOrThrow(tableName, null, values); Toast.makeText(this, "You have successfully created a new profile!", 2).show(); gotoProfileList(); Log.e(getClass().getSimpleName(),"Successfully added to database"); }catch(SQLiteException se){ Log.e(getClass().getSimpleName(), "Database connection failed!" + se); //Stay in this activity... }finally{ if (orgi != null){ orgi.close(); } } Forget it, I was able to solve my own problem by showing up an alertDialog that tells the user about the error. Thanks anyways. :) try{ orgi.insertOrThrow(tableName, null, values); Toast.makeText(this, "You have successfully created a new profile!", 2).show(); gotoProfileList(); Log.e(getClass().getSimpleName(),"Successfully added to database"); }catch(SQLiteException se){ Log.e(getClass().getSimpleName(), "Database connection failed!" + se); displayError(); //stayInThisActivity(); }finally{ if (orgi != null){ orgi.close(); } public void displayError(){ AlertDialog.Builder error = new AlertDialog.Builder(this); error.setMessage("That profile name already exists, try another one.").setCancelable(false).setPositiveButton("Yes",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); AlertDialog alert = error.create(); alert.setTitle("Error"); alert.show(); }

    Read the article

  • Closing inputstreams

    - by Nick
    I have the below code to read from a URL object: URL url= new URL("http://datasource.com"); BufferedReader reader = new BufferedReader( new InputStreamReader(url.openStream())); After I am done getting the data, is this sufficient to close and release all the resrouces: reader.close(); I did not see a method for URL to close it, like URL.close()...but wondering if I shouldn't do something more like this: InputStreamReader inputStreamReader = new InputStreamReader(url.openStream()); BufferedReader reader = new BufferedReader(inputStreamReader); // Do Stuff inputStreamReader.close(); reader.close();

    Read the article

  • Displaying NON-ASCII Characters using HttpClient

    - by Abdullah Gheith
    So, i am using this code to get the whole HTML of a website. But i dont seem to get non-ascii characters with me. all i get is diamonds with question mark. characters like this: å, appears like this: ? I doubt its because of the charset, what could it then be? Log.e("HTML", "henter htmlen.."); String url = "http://beep.tv2.dk"; HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); client.getParams().setParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET, "UTF-8"); HttpGet request = new HttpGet(url); HttpResponse response = client.execute(request); Header h = HeaderValueFormatter response.addHeader(header) String html = ""; InputStream in = response.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder str = new StringBuilder(); String line = null; while((line = reader.readLine()) != null) { str.append(line); } in.close(); //b = false; html = str.toString();

    Read the article

  • finding out Class Name

    - by Aviral
    Hi.. From ApplicationInfo we can get the name of the package of the apk running. For example I have in my code { ApplicationInfo xyz; String abc= xyz.packageName; } This would return the name of the package of the application running. But can we find out the name of the class as well from the name of the .apk running or the one we are trying to access. I want to know how to get the name of the main class of the apk at the run time. Thanks a lot Aviral

    Read the article

  • PendingIntent sent from a notication.

    - by totem
    Hi, What im trying to accomplish is to send a notification through the notification manager that once clicked will do something in the application only if its currently running. i have tried to use: notification.contentIntent = PendingIntent.getActivity(this, nNotificationCounter, Someintent, PendingIntent.FLAG_NO_CREATE) Which allways caused an exception once trying to use the notify. I switched to: Notification notification = new Notification(icon, tickerText, when); RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.some_notification); contentView.setTextViewText(R.id.title, sTitle); contentView.setTextViewText(R.id.text, sText); notification.contentView = contentView; notification.defaults |= Notification.DEFAULT_SOUND; notification.number = nNotificationCounter; Intent notificationIntent = new Intent(this, MainWindow.class).setAction(ACTION_RESET_MESSGE_COUNTER); notification.contentIntent = PendingIntent.getBroadcast(this, nNotificationCounter, notificationIntent, 0); and although this code doesn't cause an exception. it doesnt call my BroadcastReceiver which is defined as follows: public class IncomingReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION_RESET_MESSGE_COUNTER)) { System.out.println("GOT THE INTENT"); return; } } } and set in the onCreate: IntentFilter filter = new IntentFilter(ACTION_RESET_MESSGE_COUNTER); IncomingReceiver receiver = new IncomingReceiver(); context.registerReceiver(receiver, filter); Does anyone see something wrong with the code? Or how would i go about to get messages when the notification is clicked, but not create any activity if it isn't already created. edit: added the intent creation and notification creation. Thanks, Tom

    Read the article

  • c++ i need help with this program. everytime i try to run it, i got a problem

    - by FOXMULDERIZE
    1-the program must read numeric data from a file. 2-only one line per number 3-half way between those numbers is a negative number. 4-the program must sum those who are above the negative number in a acumulator an those below the negative number in another acumulator. 5-the black screen shall print both results and determined who is grater or equal. include include using namespace std; void showvalues(int,int,int[]); void showvalues2(int,int); void sumtotal(int,int); int main() { int total1=0; int total2=0; const int SIZE_A= 9; int arreglo[SIZE_A]; int suma,total,a,b,c,d,e,f; ifstream archivo_de_entrada; archivo_de_entrada.open("numeros.txt"); //lee/// for(int count =0 ;count < SIZE_A;count++) archivo_de_entrada>>arreglo[count] ; archivo_de_entrada.close(); showvalues(0,3,arreglo); showvalues2(5,8); sumtotal(total1,total2); system("pause"); return 0; } void showvalues(int a,int b,int arreglos) { int total1=0; //muestra//////////////////////// cout<< "los num son "; for(int count = a ;count <= b;count++) total1 += arreglos[count]; cout < } void showvalues2(int c,int d) { ////////////////////////////// int total2=0; cout<< "los num 2 son "; for(count =5 ;count <=8;count++) total2 = total2 + arreglo[count]; cout < void sumtotal(int e,int f) { ///////////////////////////////// cout<<"la suma de t1 y t2 es "; total= total1 + total2; cout< }

    Read the article

  • How to make condition inside getView of Custom BaseAdapter

    - by user1501150
    I want to make a Custom ListView with Custom BaseAdapter, where the the status=1,I want to show a CheckBox, and else I want to show a textView.. My given condition is: if (NewtheStatus == 1) { alreadyOrderText .setVisibility(TextView.GONE); } else{ checkBox.setVisibility(CheckBox.GONE); } But Some times I obtain some row that has neither checkBox nor TextView. The Code of my Custom BaseAdapter is given below . private class MyCustomAdapter extends BaseAdapter { private static final int TYPE_ITEM = 0; private static final int TYPE_ITEM_WITH_HEADER = 1; // private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 1; private ArrayList<WatchListAllEntity> mData = new ArrayList(); private LayoutInflater mInflater; private ArrayList<WatchListAllEntity> items = new ArrayList<WatchListAllEntity>(); public MyCustomAdapter(Context context, ArrayList<WatchListAllEntity> items) { mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void addItem(WatchListAllEntity watchListAllEntity) { // TODO Auto-generated method stub items.add(watchListAllEntity); } public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; final int position1 = position; if (v == null) { LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.listitempict, null); } watchListAllEntity = new WatchListAllEntity(); watchListAllEntity = items.get(position); Log.i("position: iteamsLength ", position + ", " + items.size()); if (watchListAllEntity != null) { ImageView itemImage = (ImageView) v .findViewById(R.id.imageviewproduct); if (watchListAllEntity.get_thumbnail_image_url1() != null) { Drawable image = ImageOperations(watchListAllEntity .get_thumbnail_image_url1().replace(" ", "%20"), "image.jpg"); // itemImage.setImageResource(R.drawable.icon); if (image != null) { itemImage.setImageDrawable(image); itemImage.setAdjustViewBounds(true); } else { itemImage.setImageResource(R.drawable.iconnamecard); } Log.i("status_ja , status", watchListAllEntity.get_status_ja() + " ," + watchListAllEntity.getStatus()); int NewtheStatus = Integer.parseInt(watchListAllEntity .getStatus()); CheckBox checkBox = (CheckBox) v .findViewById(R.id.checkboxproduct); TextView alreadyOrderText = (TextView) v .findViewById(R.id.alreadyordertext); if (NewtheStatus == 1) { alreadyOrderText .setVisibility(TextView.GONE); } else{ checkBox.setVisibility(CheckBox.GONE); } Log.i("Loading ProccardId: ", watchListAllEntity.get_proc_card_id() + ""); checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { WatchListAllEntity watchListAllEntity2 = items .get(position1); Log.i("Position: ", position1 + ""); // TODO Auto-generated method stub if (isChecked) { Constants.orderList.add(watchListAllEntity2 .get_proc_card_id()); Log.i("Proc Card Id Add: ", watchListAllEntity2 .get_proc_card_id() + ""); } else { Constants.orderList.remove(watchListAllEntity2 .get_proc_card_id()); Log.i("Proc Card Id Remove: ", watchListAllEntity2.get_proc_card_id() + ""); } } }); } } return v; } private Drawable ImageOperations(String url, String saveFilename) { try { InputStream is = (InputStream) this.fetch(url); Drawable d = Drawable.createFromStream(is, "src"); return d; } catch (MalformedURLException e) { return null; } catch (IOException e) { return null; } } public Object fetch(String address) throws MalformedURLException, IOException { URL url = new URL(address); Object content = url.getContent(); return content; } public int getCount() { // TODO Auto-generated method stub int sizef=items.size(); Log.i("Size", sizef+""); return items.size(); } public Object getItem(int position) { // TODO Auto-generated method stub return items.get(position); } public long getItemId(int position) { // TODO Auto-generated method stub return position; } }

    Read the article

  • TextView height

    - by user286919
    Hi Everybody, I want to get height of TextView and line number currently shown in that TextView. How can I do that can any body help me about this matter ?? Thanks

    Read the article

  • Handling Application Logic in Multiple AsyncTask onPostExecute()s

    - by stormin986
    I have three simultaneous instances of an AsyncTask for download three files. When two particular ones finish, at the end of onPostExecute() I check a flag set by each, and if both are true, I call startActivity() for the next Activity. I am currently seeing the activity called twice, or something that resembles this type of behavior. Since the screen does that 'swipe left' kind of transition to the next activity, it sometimes does it twice (and when I hit back, it goes back to the same activity). It's obvious two versions of the activity that SHOULD only get called once are being put on the Activity stack. The only way I can find that this is possible is if both AsyncTasks' onPostExecute() executed SO simultaneously that they were virtually running the same lines at the same time, since I set the 'itemXdownloaded' flag to true right before I check for both and call startActivity(). But this is happening enough that it's very hard for me to believe that both downloads are finishing precisely at the same time and having their onPostExecute()s so close together... Any thoughts on what could be going on here? General gist of code (details removed, ignore any syntactical errors I may have edited in): // In onPostExecute() switch (downloadID) { case DL1: dl1complete = true; break; case DL2: dl2complete = true; break; case DL3: dl3complete = true; break; } // If 1 and 2 are done, move on (DL3 still going in background) if ( downloadID != DL3 && dl1complete && dl2complete) { ParentClass.this.startActivity(new Intent(ParentClass.this, NextActivity.class)); }

    Read the article

< Previous Page | 367 368 369 370 371 372 373 374 375 376 377 378  | Next Page >