2016-07-21 12 views
0

Ich entwickle eine Messaging-App. Viele Tutorials zum Speichern von Chat-/Textnachrichten an sqlite wurden gesucht und abgerufen, wenn die Aktivität erneut erstellt wird. Mein Code ist wie folgt -android chats zu sqlite db speichern und sie abrufen

Dies ist Chats.java,

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.chats, container, false); 
     random = new Random(); 
     msg_text = (EditText) view.findViewById(R.id.messageText); 
     msgListView = (ListView) view.findViewById(R.id.msgListView); 
     ImageButton sendButton = (ImageButton) view 
       .findViewById(R.id.sendMessageButton); 
     sendButton.setOnClickListener(this); 
     msgListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
     msgListView.setStackFromBottom(true); 
     chatlist = new ArrayList<ChatMessage>(); 
     chatAdapter = new ChatAdapter(getActivity(), chatlist); 
     msgListView.setAdapter(chatAdapter); 
     return view; 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
    } 

    public void sendTextMessage(View v) { 
     String message = msg_edittext.getEditableText().toString(); 
     if (!message.equalsIgnoreCase("")) { 
      final ChatMessage chatMessage = new ChatMessage(user1, user2, 
        message, "" + random.nextInt(1000), true); 
      chatMessage.setMsgID(); 
      chatMessage.body = message; 
      chatMessage.Date = CommonMethods.getCurrentDate(); 
      chatMessage.Time = CommonMethods.getCurrentTime(); 
      msg_edittext.setText(""); 
      chatAdapter.add(chatMessage); 
      chatAdapter.notifyDataSetChanged(); 
      MessengerActivity activity = ((MessengerActivity) getActivity()); 
     } 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.sendMessageButton: 
       sendTextMessage(v); 

     } 
    } 

In ChatAdapter.java,

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ChatMessage message = (ChatMessage) chatMessageList.get(position); 
     View vi = convertView; 
     if (message.isMine) { 
      layout.setBackgroundResource(R.drawable.bubble_a); 
      parent_layout.setGravity(Gravity.RIGHT); 
     } 
     // If not mine then align to left 
     else { 
      layout.setBackgroundResource(R.drawable.bubble_b); 
      parent_layout.setGravity(Gravity.LEFT); 
     } 
} 

Wie Chats speichern db SQLite und abrufen, wenn sie geöffnet wird.

+0

können Sie Realm auch verwenden. Es ist eine Alternative von sqlite in android.Realm ist schnell in abrufen und speichern Sie Daten. bitte diesen Link http://realm.io/docs/java/latest/ – iAndroid

+0

Meine Frage ist, wie kann ich sparen ... Unabhängig von SQLite oder Realm – Mark023

+0

lesen Sie bitte realm document.I kann Ihnen helfen, Sie nicht zu unterrichten oder zu tun googeln auf Speicherdaten in SQLite in Android. – iAndroid

Antwort

Verwandte Themen