我正在进行一项活动,您在其中编辑了编辑视图中的数字(用户编号),然后您在其旁边的textview中获得了素数因子(primefactor)。 我使用了一些代码条作为主要因素,但我不太了解它,所以我会感谢任何帮助。 编辑:对建议的代码进行了一些更改,但代码仍然没有做任何事情:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
public class activityone extends AppCompatActivity {
EditText usernumber;
TextView primefactor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
usernumber = (EditText) findViewById(R.id.number);
primefactor = (TextView) findViewById(R.id.primefactor);
usernumber.addTextChangedListener(prvoWatcher);
}
private final TextWatcher prvoWatcher = new TextWatcher() {
double f,
c;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.toString().equals("")){
f = Double.parseDouble(s.toString());
while (f%2==0)
{
primefactor.setText(2 + " ");
f /= 2;
}
int i;
for (i = 3; i <= Math.sqrt(f); i+= 2)
{
// While i divides f, print i and divide n
while (f%i == 0)
{
primefactor.setText(i + " ");
f /= i;
}
}
// This condition is to handle the case whien
// f is a prime number greater than 2
if (f > 2)
primefactor.setText(String.valueOf(f));
}
}
};
}
提前致谢。
答案 0 :(得分:0)
错误是
0 -> {"date":"2017-04-07","count":7}
1 -> {"date":"2017-04-08","count":2}
2 -> {"date":"2017-04-12","count":4}
3 -> {"date":"2017-04-13","count":1}
它期望整数或浮点数变量不是数据类型。
答案 1 :(得分:0)
primefactor.setText(String.valueOf(int));
这不是它的工作原理,你不能把原始类型作为参数放在那里。根据您要显示的内容,将int
替换为i
或f
。
所以它看起来像
primefactor.setText(String.valueOf(i));
或
primefactor.setText(String.valueOf(f));
编辑:当然,如果你想使用i
变量,你必须在for循环之前声明,而不是在其中。
int i;
for (i = 3; i <= Math.sqrt(f); i+= 2)
{
// While i divides n, print i and divide n
while (f%i == 0)
{
primefactor.setText(i + " ");
f /= i;
}
}
答案 2 :(得分:0)
primefactor.setText(String.valueOf(int));
什么是int?