文本视图未在真实设备上显示
Textviews are not showing on real device
When app works fine
When app not shows textviews(正在寻找传感器。当找不到时,在 textview 上提供信息,例如 'didnt found')
我创建了一个计步器应用程序。它在我的模拟器和我自己的 android 设备上运行良好。但是当我发布那个应用程序时,我的朋友们说文本视图是不可见的。我在代码中检查了这个问题,但没有发现问题。文本视图正在从传感器获取文本。经过一番计算,写出步数和卡路里。为什么会出现这个问题?这个问题的根源是什么?为什么会这样?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.mbkdev.fragments.CountStepFragment"
android:background="#211D44"
><androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" >
<Button
android:id="@+id/btnstop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="@drawable/roundedbtn"
android:text="Durdur"
android:textAllCaps="false"
android:textColor="#EBE9F1"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.781"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.184" />
<Button
android:id="@+id/btnstart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/roundedbtn"
android:gravity="center"
android:text="Başlat"
android:textAllCaps="false"
android:textColor="#EBE9F1"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnstop"
app:layout_constraintHorizontal_bias="0.472"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.184" /></androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/txtStepCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#48B9AC"
android:layout_centerInParent="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtStepCount"
android:layout_margin="10dp"
android:textColor="#48B9AC"
android:layout_centerHorizontal="true"
android:text="Hedef: 10.000"
/>
<ProgressBar
android:id="@+id/progress_circular"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginTop="65dp"
android:indeterminateOnly="false"
android:progressDrawable="@drawable/circle"
android:rotation="-90"
tools:progress="60" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/progress_circular"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/imageView2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:src="@drawable/cal"
android:layout_marginBottom="45dp"
android:layout_marginLeft="12dp"
/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:src="@drawable/distance"
android:layout_marginRight="21dp"
android:layout_marginBottom="45dp"
android:layout_marginHorizontal="10dp"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/steps"
android:layout_weight="1"
android:layout_marginRight="15dp"
android:layout_marginBottom="45dp"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/txtlinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progress_circular"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="85dp"
>
<TextView
android:id="@+id/txtcalori_info"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Kalori: "
android:textSize="16sp"
android:textColor="#48B9AC"
android:layout_weight="1"
android:textStyle="italic"
android:layout_marginLeft="12dp"
android:layout_centerHorizontal="true"
android:layout_toLeftOf="@+id/txtdistanceinfo"
android:layout_below="@+id/progress_circular"
android:gravity="center_horizontal"
/>
<TextView
android:id="@+id/txtdistanceinfo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#48B9AC"
android:layout_below="@+id/progress_circular"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Mesafe: "
android:textSize="16sp"
android:textStyle="italic" />
<TextView
android:id="@+id/txtstepinfo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_horizontal"
android:layout_below="@+id/progress_circular"
android:layout_marginRight="12dp"
android:textColor="#48B9AC"
android:layout_weight="1"
android:layout_toRightOf="@+id/txtdistanceinfo"
android:text="Adım: "
android:textSize="16sp"
android:textStyle="italic" />
</LinearLayout>
我的 StepCounterFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_count_step,container,false);
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
View view = inflater.inflate(R.layout.fragment_count_step, container, false);
textView = view.findViewById(R.id.txtStepCount);
txtstepinfo = view.findViewById(R.id.txtstepinfo);
txtcalinfo = view.findViewById(R.id.txtcalori_info);
txtDistanceinfo = view.findViewById(R.id.txtdistanceinfo);
btnStart = view.findViewById(R.id.btnstart);
btnStop = view.findViewById(R.id.btnstop);
progressBar = view.findViewById(R.id.progress_circular);
progressBar.setMax(10000);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().stopService(new Intent(getActivity(), StepCountService.class));
}
});
sharedPreferences = getActivity().getSharedPreferences("KEY", Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
sensorManager = (SensorManager) getActivity().getSystemService(SENSOR_SERVICE);
if(sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null){
stepCounter = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
isCounterSensorPresent = true;
}
else{
textView.setText("Bulunamadı");
isCounterSensorPresent = false ;
}
System.out.println(stepCount);
return view;
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor == stepCounter){
stepCount = (int) sensorEvent.values[0];
////////////////
saveSteps();
resetStep();
int stepNumb = sharedPreferences.getInt("step",0);
////////////////
progressBar.setProgress(stepNumb);
textView.setText(String.valueOf(stepNumb));
txtstepinfo.setText("Adım: " + String.valueOf(stepNumb) );
///////////
progressBar.setProgress(stepNumb);
Log.i("sda",String.valueOf(stepCount));
/////////////////////
txtcalinfo.setText("Kalori: "+calculateCalori(stepNumb));
txtDistanceinfo.setText("Mesafe: "+calculateDistance(stepNumb));
}
}
我认为这不是程序问题之一,可能是您的列表视图在屏幕上上升到了底部。您可以研究如何为不同的设备尺寸开发 android 应用程序。访问这里 https://developer.android.com/training/multiscreen/screensizes
我找到问题所在了。我忘记了添加用户权限。
我添加到 Manifest.xml:
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
onCreate 方法:
if(ContextCompat.checkSelfPermission(this,
Manifest.permission.ACTIVITY_RECOGNITION) == PackageManager.PERMISSION_DENIED){
//ask for permission
requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, PHYISCAL_ACTIVITY);
}
When app works fine
When app not shows textviews(正在寻找传感器。当找不到时,在 textview 上提供信息,例如 'didnt found')
我创建了一个计步器应用程序。它在我的模拟器和我自己的 android 设备上运行良好。但是当我发布那个应用程序时,我的朋友们说文本视图是不可见的。我在代码中检查了这个问题,但没有发现问题。文本视图正在从传感器获取文本。经过一番计算,写出步数和卡路里。为什么会出现这个问题?这个问题的根源是什么?为什么会这样?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.mbkdev.fragments.CountStepFragment"
android:background="#211D44"
><androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" >
<Button
android:id="@+id/btnstop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="@drawable/roundedbtn"
android:text="Durdur"
android:textAllCaps="false"
android:textColor="#EBE9F1"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.781"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.184" />
<Button
android:id="@+id/btnstart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/roundedbtn"
android:gravity="center"
android:text="Başlat"
android:textAllCaps="false"
android:textColor="#EBE9F1"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnstop"
app:layout_constraintHorizontal_bias="0.472"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.184" /></androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/txtStepCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#48B9AC"
android:layout_centerInParent="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtStepCount"
android:layout_margin="10dp"
android:textColor="#48B9AC"
android:layout_centerHorizontal="true"
android:text="Hedef: 10.000"
/>
<ProgressBar
android:id="@+id/progress_circular"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginTop="65dp"
android:indeterminateOnly="false"
android:progressDrawable="@drawable/circle"
android:rotation="-90"
tools:progress="60" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/progress_circular"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/imageView2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:src="@drawable/cal"
android:layout_marginBottom="45dp"
android:layout_marginLeft="12dp"
/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:src="@drawable/distance"
android:layout_marginRight="21dp"
android:layout_marginBottom="45dp"
android:layout_marginHorizontal="10dp"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/steps"
android:layout_weight="1"
android:layout_marginRight="15dp"
android:layout_marginBottom="45dp"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/txtlinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progress_circular"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="85dp"
>
<TextView
android:id="@+id/txtcalori_info"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Kalori: "
android:textSize="16sp"
android:textColor="#48B9AC"
android:layout_weight="1"
android:textStyle="italic"
android:layout_marginLeft="12dp"
android:layout_centerHorizontal="true"
android:layout_toLeftOf="@+id/txtdistanceinfo"
android:layout_below="@+id/progress_circular"
android:gravity="center_horizontal"
/>
<TextView
android:id="@+id/txtdistanceinfo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#48B9AC"
android:layout_below="@+id/progress_circular"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Mesafe: "
android:textSize="16sp"
android:textStyle="italic" />
<TextView
android:id="@+id/txtstepinfo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_horizontal"
android:layout_below="@+id/progress_circular"
android:layout_marginRight="12dp"
android:textColor="#48B9AC"
android:layout_weight="1"
android:layout_toRightOf="@+id/txtdistanceinfo"
android:text="Adım: "
android:textSize="16sp"
android:textStyle="italic" />
</LinearLayout>
我的 StepCounterFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_count_step,container,false);
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
View view = inflater.inflate(R.layout.fragment_count_step, container, false);
textView = view.findViewById(R.id.txtStepCount);
txtstepinfo = view.findViewById(R.id.txtstepinfo);
txtcalinfo = view.findViewById(R.id.txtcalori_info);
txtDistanceinfo = view.findViewById(R.id.txtdistanceinfo);
btnStart = view.findViewById(R.id.btnstart);
btnStop = view.findViewById(R.id.btnstop);
progressBar = view.findViewById(R.id.progress_circular);
progressBar.setMax(10000);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().stopService(new Intent(getActivity(), StepCountService.class));
}
});
sharedPreferences = getActivity().getSharedPreferences("KEY", Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
sensorManager = (SensorManager) getActivity().getSystemService(SENSOR_SERVICE);
if(sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null){
stepCounter = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
isCounterSensorPresent = true;
}
else{
textView.setText("Bulunamadı");
isCounterSensorPresent = false ;
}
System.out.println(stepCount);
return view;
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor == stepCounter){
stepCount = (int) sensorEvent.values[0];
////////////////
saveSteps();
resetStep();
int stepNumb = sharedPreferences.getInt("step",0);
////////////////
progressBar.setProgress(stepNumb);
textView.setText(String.valueOf(stepNumb));
txtstepinfo.setText("Adım: " + String.valueOf(stepNumb) );
///////////
progressBar.setProgress(stepNumb);
Log.i("sda",String.valueOf(stepCount));
/////////////////////
txtcalinfo.setText("Kalori: "+calculateCalori(stepNumb));
txtDistanceinfo.setText("Mesafe: "+calculateDistance(stepNumb));
}
}
我认为这不是程序问题之一,可能是您的列表视图在屏幕上上升到了底部。您可以研究如何为不同的设备尺寸开发 android 应用程序。访问这里 https://developer.android.com/training/multiscreen/screensizes
我找到问题所在了。我忘记了添加用户权限。
我添加到 Manifest.xml:
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
onCreate 方法:
if(ContextCompat.checkSelfPermission(this,
Manifest.permission.ACTIVITY_RECOGNITION) == PackageManager.PERMISSION_DENIED){
//ask for permission
requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, PHYISCAL_ACTIVITY);
}