Я довольно новичок в Android-разработчике. В настоящее время я делаю простое приложение для сообщений. поэтому я хочу сохранить все текстовое сообщение, полученное с сервера узла. Я действительно не сейчас, как мне это сделать.Android Как сохранить msg в локальное хранилище?
ГЗСА я получил от сервера узла является JSONObject как:
{"name":"XX", "id":"XX","message":"xxxxxxxx"}
и я использую пользовательский ArrayAdepter для отображения текста:
public class ChatArrayAdapter extends ArrayAdapter<Text> {
private TextView text,avatar;
private List<Text> msgcontx = new ArrayList<Text>();
private LinearLayout wrapper;
@Override
public void add(Textobject){
msgcontx.add(object);
super.add(object);
}
public ChatArrayAdapter(Context context,int textViewResourceId) {
super(context, textViewResourceId);
}
public int getCount(){
return this.msgcontx.size();
}
public Text getItem(int index){
return this.msgcontx.get(index);
}
public View getView(int position,View convertView,ViewGroup parent){
View row = convertView;
if(row == null){
LayoutInflater inflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.chat_listview, parent,false);
}
wrapper = (LinearLayout)row.findViewById(R.id.wrapper);
Text comment = getItem(position);
avatar = (TextView)row.findViewById(R.id.avatar);
avatar.setText(comment.userID);
avatar.setVisibility(comment.left? View.VISIBLE: View.GONE);
text = (TextView)row.findViewById(R.id.comment);
text.setText(comment.comment);
// chat background to be changed
text.setBackgroundResource(comment.left ? R.drawable.bg_chat_recipient : R.drawable.bg_chat_sender);
wrapper.setGravity(comment.left? Gravity.START : Gravity.END);
return row;
}
public Bitmap decodeToBitmap(byte[] decodedByte){
return BitmapFactory.decodeByteArray(decodedByte, 0,decodedByte.length);
}
}
теперь я не знаю, как должен Я сохраняю те сообщения, которые я получил с сервера узла в локальном хранилище, и когда я открываю приложение, я хочу также отобразить историю сообщений.
Должен ли я использовать SQL? но как мне сохранить msg? поместить их в разные строки? Я знаю, что это может быть глупый вопрос, но я действительно не знаю, как сохранить msg в локальном хранилище и прочитать их снова.
Любой может дать краткое введение? Большое спасибо!
Вы можете использовать SQL. Вы можете написать прямо в локальную файловую систему. Это выбор, который зависит от того, что нужно вашему приложению, и решение **, которое вы должны сделать. –
, так что, если я напишу прямо на локальном, это будет публично, и все смогут увидеть, что пишут? Итак, если я использую библиотеку системной базы данных, андроид шифрует сообщение, или я должен сам его зашифровать? – Solorchid
Шифрование должно выполняться на вашем конце. Но зачем нужны сообщения, которые нужно зашифровать на локальном хранилище, если только один доступ к данным является локальным пользователем? Если вам не нужна максимальная безопасность в вашем приложении, шифрование локально сохраненных сообщений будет просто замедлять операции ввода-вывода. И любые данные, которые вы пишете в частном каталоге приложения, являются * private *, но, конечно, люди с правами доступа root могут легко открывать эти файлы. –