У меня есть некоторые проблемы с приложением, которое я сделал недавно.
Он должен подключиться к Raspberry и выполнить страницу PHP, которая использует preg_match_all для фильтрации 3 текстовых документов и отображения 3 строк текста вместе с датой и временем сегодняшнего дня.
У меня проблема в том, что когда длина текста превышает 5 строк (что почти всегда так), последняя строка просто исчезает из TextView и просто не видна.
Я пробовал много вещей с других форумов, но ничего не помогло (это также означает, что мой код может быть немного грязным)
Итак, вот Основная деятельность код:
public class MainActivity extends AppCompatActivity {
private HttpClient mHttpClient;
TextView result;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new connectTask().execute("");
result = findViewById(R.id.result);
Toast.makeText(getApplicationContext(), "connexion", Toast.LENGTH_LONG);
if (VERSION.SDK_INT > 9) {
StrictMode.setThreadPolicy(new Builder().permitAll().build());
}
}
public class connectTask extends AsyncTask<String, String, HttpClient> {
@Override
protected HttpClient doInBackground(String... message) {
mHttpClient = new HttpClient("http://192.168.0.51", new HttpClient.OnMessageReceived() {
@Override
public void messageReceived(String message) {
publishProgress(message);
Log.d("doInbackGround", "recu " + message);
}
});
mHttpClient.run();
return null;
}
@Override
@RequiresApi(api = 24)
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
String resu = result.getText().toString();
resu = resu + values[0];
result.setText(Html.fromHtml(resu, Html.FROM_HTML_MODE_LEGACY));
result.setMovementMethod(new ScrollingMovementMethod());
}
}
}
А это мой Макет XML для основной деятельности:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"android:maxLines="8"android:ellipsize="end"tools:context=".MainActivity">
<TextView
android:id="@+id/result"android:layout_width="fill_parent"android:layout_gravity="fill"android:layout_height="391dp"android:layout_marginBottom="8dp"android:layout_marginEnd="8dp"android:layout_marginLeft="8dp"android:layout_marginRight="8dp"android:layout_marginStart="8dp"android:layout_marginTop="8dp"android:singleLine="false"android:freezesText="true"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="1.0"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
И это предварительный просмотр того, как это выглядит
Предполагается продолжить и написать «АПТЕКА» и другие слова, как и другие строки
в вашем TextView
исправьте высоту так:
android:layout_height="wrap_content"
Ой! и как уже упоминалось выше. maxLines
должны быть удалены
Я нашел решение:
По сути, HTTPClient, о котором я говорил до редактирования моего поста, был классом, который я импортировал, и он включал следующее ограничение.
Я снял крышку и теперь могу видеть весь текст. Я до сих пор не вижу разрывов строк в приложении, которые я отчетливо вижу, когда подключаюсь к своему малиновому приложению через браузер, но я предполагаю, что это еще одна проблема, которая приведет к другой теме, спасибо!