在Listview中接收数据

时间:2017-11-07 13:25:25

标签: android listview

我是Android Studio的新用户,我正致力于在我的平板电脑上创建一个应用程序,该应用程序从我的可穿戴设备接收传入数据并将其显示在Listview中。我提到this教程,并成功地将Wear的消息发送到我的手机。但问题出在接收端。我能够接收数据但是当我尝试在Listview中显示它时,它不会添加到listview,而是继续覆盖第一个值。

MyService.java类:

import android.content.Intent;
import com.google.android.gms.wearable.MessageEvent;
import com.google.android.gms.wearable.WearableListenerService;

public class MyService extends WearableListenerService {
public static final String Wearable_Path = "/wearable/data/path";
public static final String TAG = "MY DATA MAP.....";




@Override
public void onMessageReceived(MessageEvent messageEvent) {
    if(messageEvent.getPath().equals(Wearable_Path)){
final String message = new String(messageEvent.getData());
        Intent intent = new Intent(this,MainActivity.class);
        intent.putExtra("message",message);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }else{
    super.onMessageReceived(messageEvent);}
}
}

MainActivity.java类:

package com.example.harshsheth1992.myapplication;


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {

private ListView list_log;
private ArrayList<String> inc_data=new ArrayList<>();
private ArrayAdapter<String> adapter;
private String msg;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    list_log = (ListView) findViewById(R.id.lv_log);
    msg = getIntent().getStringExtra("message");
    inc_data.add(msg);
    adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,inc_data);
    list_log.setAdapter(adapter);
}

我认为这将是一个非常小的错误或我忽略的东西,但我无法弄清楚。提前谢谢!

1 个答案:

答案 0 :(得分:0)

在这一行之后,

list_log.setAdapter(adapter);

添加

adapter.notifyDataSetChanged();