Copyright (c) 2014, Ford Motor Company
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are m...
If you think the Android project sdl_tester_android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package com.livio.sdl.dialogs;
/*www.java2s.com*/import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import com.livio.sdl.R;
import com.livio.sdl.SdlLogMessage;
import com.livio.sdl.utils.SdlUtils;
/**
* This dialog shows a single JSON message, but allows the ability to flip back and forth between
* all available messages via the arrow buttons at the bottom of the dialog. This dialog will not
* be updated when new messages are sent with this dialog open. The dialog must be closed and re-opened
* in order to refresh with new values.
*
* @author Mike Burke
*
*/publicclass JsonFlipperDialog extends BaseAlertDialog {
private List<SdlLogMessage> jsonMessages;
privateint currentPosition;
private TextView text;
private ImageButton leftButton, rightButton;
public JsonFlipperDialog(Context context, List<SdlLogMessage> jsonMessages, int startPosition) {
super(context, SdlUtils.makeJsonTitle(jsonMessages.get(startPosition).getCorrelationId()), R.layout.json_flipper_dialog);
this.jsonMessages = jsonMessages;
this.currentPosition = startPosition;
createDialog();
// since refresh updates the dialog's title, this must be after createDialog() so the dialog isn't null
refresh();
}
@Override
protectedvoid findViews(View parent) {
text = (TextView) parent.findViewById(R.id.textview);
// set up left button
leftButton = (ImageButton) parent.findViewById(R.id.ib_moveLeft);
leftButton.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
// if we can move left, do it. if not, do nothing
if(currentPosition > 0){
currentPosition--;
refresh();
}
}
});
// set up right button
rightButton = (ImageButton) parent.findViewById(R.id.ib_moveRight);
rightButton.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
// if we can move right, do it. if not, do nothing
if(currentPosition < (jsonMessages.size()-1) ){
currentPosition++;
refresh();
}
}
});
}
// refresh the buttons & the text for this dialog
privatevoid refresh(){
refreshButtons();
refreshText();
}
// refreshes the buttons with new position. disables the buttons when we're at the edges of the list.
privatevoid refreshButtons(){
boolean atStart = (currentPosition == 0);
boolean atEnd = (currentPosition == jsonMessages.size()-1);
leftButton.setEnabled(!atStart);
rightButton.setEnabled(!atEnd);
}
// refreshes the text of the dialog - both the title and the main text.
privatevoid refreshText(){
SdlLogMessage currentMessage = jsonMessages.get(currentPosition);
dialog.setTitle(SdlUtils.makeJsonTitle(currentMessage.getCorrelationId()));
text.setText(currentMessage.getJsonData());
}
}