在Android Studio中怎么把蓝牙接收的数据显示在listview中

可以将通过蓝牙接收到的数据存储到一个数据库,再将数据库调用,把数据显示在listview中或者textview中吗?
(怎样使用Timer类来将数据实时显示?)

先回答题主问题。可以使用listview组件中的textView显示蓝牙接受的收据。

题主提到Timer类。Timer类:可以定时执行自定义Task任务。

使用Timer可以定时刷新ListView的Adapter数据适配器(接收到的蓝牙数据)

  
import java.util.Timer;  
import java.util.TimerTask;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.os.Handler;  
import android.os.Message;  
  
public class TestTimer extends Activity {  
   //定义Timer
    Timer timer = new Timer();
    Handler handler = new Handler(){  
  
        public void handleMessage(Message msg) {  
            switch (msg.what) {      
            case 1:      
                setTitle("hear me?");  
                break;      
            }      
            super.handleMessage(msg);  
        }  
          
    };  
//定义Task
   TimerTask task = new TimerTask(){  
  
        public void run() {  
            Message message = new Message();      
            message.what = 1;      
            handler.sendMessage(message);    
        }  
          
    };  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
       timer.schedule(task, 10000); 
    }  
}  


TextView


public void Example() {
    readFromBLue();
    saveLocale(Object o, new SaveSuccessListener(){
        void success(String info){
            //set info to TextView
            Message message = new Message();
            message.what = 100;
            Bundle bundle = new Bundle();
            bundle.putString("info" info);
            message.setData(bundle);
            handler.sendMessage(message);
        }
    });
}

public void saveLocale(Object o, SaveSuccessListener listener) {
    //save actione done
    if(listener != null) {
        //Get info from database
        listener.success(String info);
    }
}

public interface SaveSuccessListener {
    void success(String info);
}

private final Handler.Callback callback = new Handler.Callback() {
    @Override
    public boolean handleMessage(@NonNull Message msg) {
        if (msg.what == 100) {
            textView.setText(msg.getData().getString("info"));
        }
        return false;
    }
};
private final Handler handler = new Handler(Looper.myLooper(), callback);


@Override
public void onDestroyView() {
    super.onDestroyView();
    handler.removeCallbacksAndMessages(callback);
    binding = null;
}