【问题标题】:Android Studio Display Long in Button TextAndroid Studio 在按钮文本中显示长
【发布时间】:2020-10-08 18:18:18
【问题描述】:

如何在按钮元素的文本字段(或 TextView)内显示 Long 或 Int?在文本字段中显示字符串是否可以使用相同的方法?谢谢。

这是我的 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 上仍然出现“无法解析符号”错误。

【问题讨论】:

  • 您必须先将 int 或 long 转换为 String 以将其设置为 TextView 否则会抛出 ResourceNotFound 异常。
  • 你可以用其他东西代替按钮。使用相对布局创建自定义按钮..这有助于使您的按钮更具自定义性。

标签: java android xml android-studio


【解决方案1】:

例如:

如果你有一个名为jButton1的按钮,你只需要使用这个代码:

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

是的,对于文本字段是相同的方法。

【讨论】:

    【解决方案2】:

    我通常这样做

    btn.setText(number+"");
    

    【讨论】:

      【解决方案3】:

      你可以使用

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

      或者

      btn.setText(Long.toString(myLong));
      btn.setText(Integer.toString(myInt));
      

      【讨论】:

      • 好的,我可以说这是正确的答案,但是在我的活动代码中声明按钮后,我无法设置按钮的文本。我用 Button main = (Button) findViewById(R.id.myBtn); 声明了按钮,但我收到“无法解析符号'main'”的构建时错误。知道是什么原因造成的吗?
      • 嗨,代码.. 谢谢.. 这可能是您尝试在其定义范围之外访问main 按钮;您可以尝试添加Button main; 作为活动类成员字段。然后在onCreate() 中添加main = (Button) findViewById(R.id.myBtn);
      • 嘿 Zain,它起作用了,现在我可以声明我的按钮,但我不能在它上面使用 setText 方法,它给出的错误与在按钮上给出的错误相同。我很困惑。
      • 你能用完整的代码(xml和java)更新问题吗,或者在github或其他地方分享它。我猜不出发生了什么
      • @Code_Student09 刚刚看到您的编辑,请在myBtn.setText(internalSize); 之前添加Button myBtn = (Button) findViewById(R.id.main);
      猜你喜欢
      • 1970-01-01
      • 2020-11-16
      • 2015-04-30
      • 1970-01-01
      • 2019-08-23
      • 2017-03-15
      • 2013-03-02
      • 1970-01-01
      • 2015-06-02
      相关资源
      最近更新 更多