Android 如何将意图添加到导航视图选项卡?
因此,我有一个导航视图,它从左侧滑动,带有一个名为Bluetooth的选项卡。我希望蓝牙按钮连接到另一个具有所有蓝牙功能的类。有没有一种方法可以让我连接到那个功能类,并且有一种意图?对不起,如果我不是很具体,我是一个Android Studio初学者 使用按钮查看我的导航视图: 我的主要班级:Android 如何将意图添加到导航视图选项卡?,android,android-studio,layout,view,tabs,Android,Android Studio,Layout,View,Tabs,因此,我有一个导航视图,它从左侧滑动,带有一个名为Bluetooth的选项卡。我希望蓝牙按钮连接到另一个具有所有蓝牙功能的类。有没有一种方法可以让我连接到那个功能类,并且有一种意图?对不起,如果我不是很具体,我是一个Android Studio初学者 使用按钮查看我的导航视图: 我的主要班级: public class PantallaDatos extends AppCompatActivity { private DrawerLayout drawer; @Override protec
public class PantallaDatos extends AppCompatActivity {
private DrawerLayout drawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pantalla_datos);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar,
R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
ViewPager2 viewPager2 = findViewById(R.id.viewPager);
viewPager2.setAdapter(new DatosPagerAdapter(this));
TabLayout tabLayout = findViewById(R.id.tabLayout);
TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(
tabLayout, viewPager2, new TabLayoutMediator.TabConfigurationStrategy(){
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
switch(position){
case 0:{
tab.setText("Medidas");
break;
}
case 1:{
tab.setText("Registros");
break;
}
case 2:{
tab.setText("Graficos");
break;
}
}
}
});
tabLayoutMediator.attach();
}
@Override
public void onBackPressed() {
if(drawer.isDrawerOpen(GravityCompat.START)){
drawer.closeDrawer(GravityCompat.START);
}else{
super.onBackPressed();
}
}
}
该类具有我想要连接到该按钮的所有功能(简化):
public类ajustesconextionsensores扩展了AppCompativeActivity实现
AdapterView.OnItemClickListener{
私有静态最终整数请求\访问\粗略\位置=1;
专用静态最终int请求\u启用\u蓝牙=11;
私有文本视图mEstadoBlueTv;
私有ImageView mBluetIv;
私有列表视图mLvEmparejados、mLvDispositivos;
专用按钮mBotOnOff、mBotDescubrir、mBotEmp、MBOTCONNECTAR;
私人蓝牙适配器mBluetoothAdapter;
专用阵列适配器列表适配器;
//康奈西翁蓝牙
私有静态最终UUID MY_UUID_unsecure=UUID.fromString(“8ce255c0-200a-11e0-ac64-0800200c9a66”);
蓝牙连接服务mBluetoothConnection;
//Dispositivo BT y ArrayList de dispositivos
蓝牙设备MBT设备;
public ArrayList mBTDevices=new ArrayList();
//广播
//找到广播接收器参数动作
专用最终广播接收器mBroadcastReceiver1=新广播接收器(){
公共void onReceive(上下文、意图){
String action=intent.getAction();
if(action.equals(mBluetoothAdapter.action\u STATE\u CHANGED)){
final int state=intent.getIntExtra(BluetoothAdapter.EXTRA_state,mBluetoothAdapter.ERROR);
开关(状态){
机箱BluetoothAdapter.STATE\u关闭:
showToast(“蓝牙DeActivado”);
mBluetIv.setImageResource(R.drawable.bt_off);
打破
机箱BluetoothAdapter.STATE_打开:
showToast(“蓝牙活动”);
mBluetIv.setImageResource(R.drawable.bt_on);
打破
}
}
}
};
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ajustes\u conexion\u传感器);
//英特法兹
mEstadoBlueTv=findviewbyd(R.id.statusBluetoothTv);
mBluetIv=findviewbyd(R.id.BluetoothIv);
mBotOnOff=findViewById(R.id.BotOnOff);
mBotEmp=findViewById(R.id.BotEmp);
mBotDescubrir=findViewById(R.id.botDesc);
MBOTCONNECTAR=findViewById(R.id.botConectar);
mLvEmparejados=findViewById(R.id.lvEmparejados);
mLvDispositivos=(ListView)findViewById(R.id.lvDispositivos);
//BT适配器
mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
//描述处置
//列出适配器参数记录器los DISPITIVOS detectados
listAdapter=newarrayadapter(这是android.R.layout.simple\u list\u item\u 1);
mLvDispositivos.setAdapter(listAdapter);
//检查del estado del蓝牙
checkBluetoothState();
//雷西比尔学院
registerReceiver(DeviceFoundReceiver,新的IntentFilter(BluetoothDevice.ACTION_-FOUND));
registerReceiver(DeviceFoundReceiver,新
IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED));
registerReceiver(DeviceFoundReceiver,新
IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED));
mLvDispositivos.setOnItemClickListener((AdapterView.OnItemClickListener)AjustesConnectionSensores.this);
//这是一个有争议的问题
if(mBluetoothAdapter==null){
mEstadoBlueTv.setText(“蓝牙无争议”);
}否则{
mEstadoBlueTv.setText(“蓝牙可争议”);
}
//蓝牙功能(开/关)
if(mBluetoothAdapter.isEnabled()){
mBluetIv.setImageResource(R.drawable.bt_on);
}否则{
mBluetIv.setImageResource(R.drawable.bt_off);
}
//波顿开关
mBotOnOff.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
enableDisableBT();
};
});
//马帕雷贾多斯酒店
mBotEmp.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
检查蓝牙();
绑定设备();
}
});
//新处置
mBotDescubrir.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(mBluetoothAdapter!=null&&mBluetoothAdapter.isEnabled()){
//粗粒位置的比较
if(checkRouseLocationPermission())
listAdapter.clear();
mBluetoothAdapter.startDiscovery();
}否则{
checkBluetoothState();
}
}
});
//性欲
mbotConnect.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
startConnection();
}
});
//Hacemos check del permiso al-Inicia la应用程序
CheckLocationPermission();
}
提前感谢您可能不是您特别想要的,但是,如果您想通过启动另一个活动来处理它,并因此使用另一个布局。您只需要设置一个意图并启动一个活动。您可以将信息从您的活动传递到新活动。下面是一个如何执行此操作的示例,希望对您有所帮助
Intent myIntent=newintent(myActivity.this,NewActivity.class);
Bundle=新Bundle();
bundle.putString(“Extra_info”,somefunction.extrainfo());//将额外信息作为字符串传递
myIntent.putExtras(bundle);
myActivity.this.startActivity(myIntent);//运行新活动
public class AjustesConexionSensores extends AppCompatActivity implements
AdapterView.OnItemClickListener {
private static final int REQUEST_ACCESS_COARSE_LOCATION = 1;
private static final int REQUEST_ENABLE_BLUETOOTH = 11;
private TextView mEstadoBlueTv;
private ImageView mBluetIv;
private ListView mLvEmparejados, mLvDispositivos;
private Button mBotOnOff, mBotDescubrir, mBotEmp, mBotConectar;
private BluetoothAdapter mBluetoothAdapter;
private ArrayAdapter<String> listAdapter;
//Conexión bluetooth
private static final UUID MY_UUID_INSECURE = UUID.fromString("8ce255c0-200a-11e0-ac64-0800200c9a66");
BluetoothConnectionService mBluetoothConnection;
//Dispositivo BT y ArrayList de dispositivos
BluetoothDevice mBTDevice;
public ArrayList<BluetoothDevice> mBTDevices = new ArrayList<>();
//BROADCASTS
// BroadcastReceiver para ACTION_FOUND
private final BroadcastReceiver mBroadcastReceiver1 = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(mBluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, mBluetoothAdapter.ERROR);
switch(state){
case BluetoothAdapter.STATE_OFF:
showToast("Bluetooth desactivado");
mBluetIv.setImageResource(R.drawable.bt_off);
break;
case BluetoothAdapter.STATE_ON:
showToast("Bluetooth activado");
mBluetIv.setImageResource(R.drawable.bt_on);
break;
}
}
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ajustes_conexion_sensores);
//Interfaz
mEstadoBlueTv = findViewById(R.id.statusBluetoothTv);
mBluetIv = findViewById(R.id.BluetoothIv);
mBotOnOff = findViewById(R.id.BotOnOff);
mBotEmp = findViewById(R.id.BotEmp);
mBotDescubrir= findViewById(R.id.botDesc);
mBotConectar = findViewById(R.id.botConectar);
mLvEmparejados = findViewById(R.id.lvEmparejados);
mLvDispositivos = (ListView) findViewById(R.id.lvDispositivos);
//BT Adapter
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
//Descubrir dispositivos
//List adapter para recoger los dispositivos detectados
listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
mLvDispositivos.setAdapter(listAdapter);
//Check del estado del Bluetooth
checkBluetoothState();
//Registramos el receptor para la acción de recibir
registerReceiver(devicesFoundReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND));
registerReceiver(devicesFoundReceiver, new
IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED));
registerReceiver(devicesFoundReceiver, new
IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED));
mLvDispositivos.setOnItemClickListener((AdapterView.OnItemClickListener) AjustesConexionSensores.this);
// Comprobar si el Bluetooth está disponible
if (mBluetoothAdapter == null) {
mEstadoBlueTv.setText("Bluetooth no disponible.");
} else {
mEstadoBlueTv.setText("Bluetooth está disponible.");
}
// Establecer una imagen en función del estado del Bluetooth (on/off)
if (mBluetoothAdapter.isEnabled()) {
mBluetIv.setImageResource(R.drawable.bt_on);
} else {
mBluetIv.setImageResource(R.drawable.bt_off);
}
// Boton ON-OFF
mBotOnOff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
enableDisableBT();
};
});
// Dispositivos emparejados
mBotEmp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkBluetooth();
bondedDevices();
}
});
//Nuevos dispositivos
mBotDescubrir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()) {
//Comprobamos que el coarse location esté permitido
if (checkCoarseLocationPermission())
listAdapter.clear();
mBluetoothAdapter.startDiscovery();
} else {
checkBluetoothState();
}
}
});
//Conectar a dispositivo
mBotConectar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startConnection();
}
});
//Hacemos check del permiso al iniciar la app
checkCoarseLocationPermission();
}