我正在尝试将以下代码(代码从云中提取)转换为方法。
ParseQuery<ParseObject> query = ParseQuery.getQuery("Parse name");
query.getInBackground("asdlasdKSas2", new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
//Cost
shirtCost = (TextView)findViewById(R.id.cost1);
int s1 = object.getInt("cost");
shirtCost.setText(s1);
//Name
shirt = (TextView)findViewById(R.id.snack1);
String s2 = object.getString("item");
shirt.setText(s2);
//Desc
shirtdesc = (TextView)findViewById(R.id.snack1description);
String s3 = object.getString("description");
shirtdesc.setText(s3);
} else {
// something went wrong
}
}
});
shirtCost,shirt,&amp; shirtDesc都是TextViews。 我希望能够召唤一个功能女巫将替换衬衫,衬衫和衬衫成本与我所说的periciters。这是我试图做的事情(没有工作):
public void setData(String key, String classname, TextView main, TextView cost, TextView desc, <a way to put an android id in replace of the findViewByID()>){
ParseQuery<ParseObject> query = ParseQuery.getQuery(classname);
query.getInBackground(key, new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
//Cost
cost = (TextView)findViewById(R.id.<?>);
int s1 = object.getInt("cost");
cost.setText(s1);
//Name
main = (TextView)findViewById(R.id.snack1);
String s2 = object.getString("item");
main.setText(s2);
//Desc
desc = (TextView)findViewById(R.id. <?>);
String s3 = object.getString("description");
desc.setText(s3);
} else {
// something went wrong
}
}
});
}
任何建议都会令人惊讶。解决方案会更好。希望我深入了解你的理解。谢谢!
所以解释一下。总之,这是我不明白的。看看这个方法:
public void example(TextView cost, <permeter idk how to pass. keep reading>) {
cost = (TextView)findViewByID(HOW DO I GET THIS ID THROGUH PERIMETER??);}
我需要通过参数传递ID,但绝对不知道。
答案 0 :(得分:0)
如果您要在第二段代码中替换shirtCost
,shirt
和shirtdesc
中的值,则必须使用与第一段代码相同的EditText
之一。
你说:
我希望能够召唤一个函数女巫将替换衬衫,衬衫,衬衫和我所穿的periciters。
因此,您必须分别对第一段代码中使用的每个变量使用相同的EditText
。所以,在你的第二段代码中,你对findViewById
函数的使用必须是这样的:
cost = (TextView)findViewById(R.id.cost1);
main = (TextView)findViewById(R.id.snack1);
desc = (TextView)findViewById(R.id.snack1description);
你必须为每个变量使用相同的EditText,因为你想要替换它,所以,当你再次为他们设置另一个文本时,你在EditText
之前模糊地设置了什么文本,文本是之前设置将被您正在设置的第二个替换。
所以,如果你有:
shirtCost.setText("This is an example");
shirtCost.getText(); //The value will be --> "This is an example"
shirtCost.setText("This text replace the first one");
shirtCost.getText(); //The value will be --> "This text replace the first one"
我希望它会对你有所帮助!