我试图按下一个按钮来调用一个函数。唯一的问题是,该函数从另一个函数调用一个参数,并且我得到一个错误:AddRecipe中的SetRecipe(int)不能应用于()。我不知道我的意思是通过/调用正确的术语。
按钮代码为:
Button saveRecipe = (Button) findViewById(R.id.btnAddRecipe);
saveRecipe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SetRecipe();
}
});
功能是:
public int getDifficulty (View v)
{
int Difficulty = -1;
boolean checked = ((RadioButton) v).isChecked();
switch(v.getId()) {
case R.id.btnDiff1:
if (checked)
Difficulty = 1;
break;
case R.id.btnDiff2:
if (checked)
Difficulty = 2;
break;
case R.id.btnDiff3:
if (checked)
Difficulty = 3;
break;
case R.id.btnDiff4:
if (checked)
Difficulty = 4;
break;
case R.id.btnDiff5:
if (checked)
Difficulty = 5;
break;
}
return Difficulty;
}
public void SetRecipe (int Difficulty)
{
TextView RecipeNameView = (TextView) findViewById(R.id.editRecipeName);
TextView CookTimeView = (TextView) findViewById(R.id.editCookTime);
Spinner MealTypeView = (Spinner) findViewById(R.id.editMeal);
TextView HowToView = (TextView) findViewById(R.id.editHowTo);
String RecipeName = RecipeNameView.getText().toString();
int CookTime = Integer.parseInt(CookTimeView.getText().toString());
String MealType = MealTypeView.getSelectedItem().toString();
String HowTo = HowToView.getText().toString();
DatabaseHandler dbh = new DatabaseHandler(this);
dbh.SetRecipe(RecipeName, CookTime, Difficulty, MealType, HowTo);
}
我要做的就是从getDifficulty函数中获取int Difficulty并将其传递给SetRecipe函数。当用户点击按钮时,将调用SetRecipe函数。
如果这是一个愚蠢的错误,那么我道歉,我对编码非常陌生,所以我不知道自己在做什么。任何帮助将不胜感激!
答案 0 :(得分:0)
而不是说难度= 1,2,3,4你能直接称它吗?
SetRecipe(1);
另外......当我实现View.OnClickListener ...
时public class yourclass extends AppCompatActivity implements View.OnClickListener {
Button setrecipe1;
Button setrecipe2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);
setrecipe1= (Button) findViewById(R.id.setrecipe1);
setrecipe2= (Button) findViewById(R.id.setrecipe2);
setrecipe1.setOnClickListener(this);
setrecipe2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.setrecipe1:
SetRecipe(1);
break;
case R.id.setrecipe2:
SetRecipe(2);
break;
default:
break;
}
}
}
答案 1 :(得分:0)
尝试将android:onClick="getDifficulty"
属性添加到btnAddRecipe标记并删除onClickListener ...
这应该工作
答案 2 :(得分:0)
OnCreate
方法声明之前:
int Difficulty;
在getDifficulty
方法中删除int
:
int Difficulty = -1; ==> Difficulty = -1;
然后在你的点击按钮内:
Button saveRecipe = (Button) findViewById(R.id.btnAddRecipe);
saveRecipe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SetRecipe(Difficulty);
}
});
祝你好运