Android Длинный студийный дисплей в тексте кнопки - PullRequest
4 голосов
/ 18 июня 2020

Как мне go отображать Long или Int внутри текстового поля элемента кнопки (или TextView)? Будет ли работать тот же метод для отображения строки внутри текстового поля? Спасибо.

Вот мой код для MainActivity

import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.view.MenuInflater;
import android.view.View;
import android.view.Menu;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.material.navigation.NavigationView;

import androidx.appcompat.widget.PopupMenu;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import java.io.File;

public class MainActivity extends AppCompatActivity {
Button mainstorage;
private AppBarConfiguration mAppBarConfiguration;
private static final int REQUEST_WRITE_STORAGE = 112;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    DrawerLayout drawer = findViewById(R.id.drawer_layout);
    NavigationView navigationView = findViewById(R.id.nav_view);
    StatFs statFs = new 
    StatFs(Environment.getRootDirectory().getAbsolutePath());
    long blockSize = statFs.getBlockSize();
    long totalSize = statFs.getBlockCount()*blockSize;
    long availableSize = statFs.getAvailableBlocks()*blockSize;
    long freeSize = statFs.getFreeBlocks()*blockSize;
    String internalSize = Long.toString(blockSize);
    myBtn.setText(internalSize);

}
}

И мой XML для фрагмента.

<androidx.constraintlayout.widget.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="match_parent"
tools:context=".ui.home.HomeFragment">
<LinearLayout
    android:background="@android:color/transparent"
    android:id="@+id/firstrow"
    android:layout_height="0dp"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:gravity="start"
    app:layout_constraintHeight_percent="0.22"
    tools:ignore="MissingConstraints">
 <Button
        android:contentDescription="@string/goInternalDesc"
        android:id="@+id/main"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@android:color/transparent"
        android:drawableTop="@drawable/storage"
        android:minWidth="20dp"
        android:text="Main Storage"
        android:minHeight="20dp" />
</LinearLayout>

Мне интересно почему я получаю ошибку сборки при попытке установить текст кнопки в строку в моем коде. Я подумал, что это может быть потому, что я установил текст кнопки в XML, но удаление этого не дало никакого эффекта - я все еще получаю ошибку «Невозможно разрешить символ» в моей MainActivity.

Ответы [ 3 ]

1 голос
/ 18 июня 2020

Вы можете использовать

btn.setText(String.valueOf(myLong));
btn.setText(String.valueOf(myInt));

или

btn.setText(Long.toString(myLong));
btn.setText(Integer.toString(myInt));
1 голос
/ 18 июня 2020

Я обычно так делаю

btn.setText(number+"");
1 голос
/ 18 июня 2020

Например:

Если у вас есть кнопка с именем jButton1, вам просто нужно использовать этот код:

String test = String.valueOf(your_int_or_long);
jButton1.setText(test);

И да, для текстового поля тот же метод .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...