gpt4 book ai didi

android - String 中的 setProgress,给出错误

转载 作者:行者123 更新时间:2023-11-30 03:18:53 24 4
gpt4 key购买 nike

我是 Android 菜鸟,正在尽我所能去理解它。我正在尝试制作一个 apk 只是为了好玩,以便更好地理解事物,而且还有一个问题,即使在搜索谷歌之后我还没有解决。所以,问题是我有一个只允许数字的 EditText,通过在其中插入一个数字,它将进入一个字符串,并且从那里将在 setProgress 中作为“百分比”引入。至少,这就是我想要它做的;因为,将该值放入字符串并尝试在 setProgress 中以百分比形式读取它之后,eclipse 不允许我:

The method setProgress(int) in the type ProgressBar is not applicable for the arguments (String)

代码如下:*不要理会其他任何事情,它只是为了测试......

    package com.example.singur;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.ToggleButton;

public class MainActivity extends Activity implements OnClickListener
{

Button button;
ToggleButton toggle;
TextView rateText;
TextView textProgress;
Switch legit;
EditText edit;
RatingBar rating;
ProgressBar progress;
int count = 0;
// int value = 0;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
toggle = (ToggleButton) findViewById(R.id.toggle);
rateText = (TextView) findViewById(R.id.rateText);
textProgress = (TextView) findViewById(R.id.textProgress);
legit = (Switch) findViewById(R.id.legit);
edit = (EditText) findViewById(R.id.edit);
rating = (RatingBar) findViewById(R.id.rating);
progress = (ProgressBar) findViewById(R.id.progress);

legit.setEnabled(false);
edit.setEnabled(false);

button.setOnClickListener(this);
toggle.setOnClickListener(this);
edit.setOnClickListener(this);
//rating.setOnRatingBarChangeListener(this);
}
public void onClick(View v)
{
switch(v.getId())
{
case R.id.button:
textProgress.setText("button clicked" + count + progress.getProgress());
count++;
progress.setProgress(count);
break;
case R.id.rating:
break;
case R.id.toggle:
if(toggle.isChecked() == true)
{
edit.setEnabled(true);
edit.setText("" + count);
//count++;
//progress.setProgress(count);
textProgress.setText("button clicked" + count + progress.getProgress());
}else
{
edit.setEnabled(false);
edit.setText("disabled but count = " + count);
//count++;
//progress.setProgress(count);
textProgress.setText("button clicked" + count + progress.getProgress());
}
count++;
textProgress.setText("toggle:"+count);
break;
case R.id.edit:
if(edit.isEnabled() == true)
{
edit.setOnEditorActionListener(new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (actionId == EditorInfo.IME_ACTION_DONE)
{
// do your stuff here
String value = edit.getText().toString();
progress.setProgress(value.valueOf(value));
}
return false;
}
});
}
}
}
}

最佳答案

您需要将 String 转换为 int。如错误所示,setProgress() 仅接受整数,而您从 EditText 获得的值是一个字符串(即使该字符串只能包含数字)。

最简单的方法是使用 Integer.parseInt(String) .

你的代码看起来像这样:

String value = edit.getText().toString();
progress.setProgress(Integer.parseInt(value));

另请注意,如果字符串无法解析为整数,Integer.parseInt() 将抛出一个 NumberFormatException。确保适本地处理该异常。

关于android - String 中的 setProgress,给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19525407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com