Java 如何将值从一个函数传递到另一个函数
您好,我想将值“valuey”从方法veikia()传递给方法 CheckButton单击()。我是Java新手,如果这个问题已经回答了,我很抱歉,因为我不明白:) 祝你今天愉快:) 这是我的密码:Java 如何将值从一个函数传递到另一个函数,java,android,parameter-passing,Java,Android,Parameter Passing,您好,我想将值“valuey”从方法veikia()传递给方法 CheckButton单击()。我是Java新手,如果这个问题已经回答了,我很抱歉,因为我不明白:) 祝你今天愉快:) 这是我的密码: public class ListViewCheckboxesActivity extends Activity { MyCustomAdapter dataAdapter = null; PrekesDBController controller = new PrekesDBCo
public class ListViewCheckboxesActivity extends Activity {
MyCustomAdapter dataAdapter = null;
PrekesDBController controller = new PrekesDBController(this);
//private Context mContext;
ScrollView sv;
TextView infotext;
CheckBox check;
LinearLayout ll;
Spinner spinner2;
@Override
public void onCreate(Bundle savedInstanceState) {
// mContext = this;
super.onCreate(savedInstanceState);
setContentView(R.layout.main123);
// mContext = this;
//Generate list View from ArrayList
displayListView();
checkButtonClick();
veikia();
}
public String veikia() {
ArrayList<HashMap<String, String>> data2 = controller.getpavadinimas();
String valuey = "";
for (int kl = 0; kl < data2.size(); kl++) {
spinner2 = (Spinner) findViewById(R.id.spinner11);
ScrollView sv = (ScrollView) findViewById(R.id.myscroll123);
LinearLayout ll = (LinearLayout) findViewById(R.id.mylinearLayout123);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.naujasuzsakymailist123, null);
ll.addView(view);
//sikna = int kl;
Spinner jopapa = new Spinner(this);
jopapa = (Spinner) findViewById(R.id.spinner11);
jopapa.setId(kl);
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
jopapa.setAdapter(dataAdapter);
valuey = String.valueOf(jopapa.getSelectedItem());
System.out.println(valuey);
}
return valuey;
}
public void checkButtonClick() {
Button myButton = (Button) findViewById(R.id.findSelected);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StringBuffer responseText = new StringBuffer();
responseText.append("The following were selected...\n");
ArrayList<Country> countryList = dataAdapter.countryList;
for(int i=0;i<countryList.size();i++){
Country country = countryList.get(i);
if(country.isSelected()){
responseText.append("\n" + country.getName());
}
}
Toast.makeText(getApplicationContext(),
responseText, Toast.LENGTH_LONG).show();
}
});
}
}
公共类ListViewCheckboxesActivity扩展活动{
MyCustomAdapter dataAdapter=null;
PrekesDBController=新的PrekesDBController(此);
//私有上下文;
滚动视图sv;
文本视图信息文本;
复选框检查;
线性布局;
喷丝器喷丝器2;
@凌驾
创建时的公共void(Bundle savedInstanceState){
//mContext=这个;
super.onCreate(savedInstanceState);
setContentView(R.layout.main123);
//mContext=这个;
//从ArrayList生成列表视图
displayListView();
选中按钮单击();
维基亚();
}
公共字符串veikia(){
ArrayList data2=controller.getpavadinimas();
字符串value=“”;
对于(int-kl=0;kl 对于(int i=0;i调用时,只需将veikia()
的返回值传递给checkButtonClick()
:
public String veikia() {
...
return valuey;
}
// Added parameter valuey
public void checkButtonClick(String valuey) {
...
}
@Override
public void onCreate(Bundle savedInstanceState) {
...
// Call checkButtonClick() with the parameter valuey returned from veikia()
checkButtonClick(veikia());
}
调用时,只需将veikia()
的返回值传递给checkButtonClick()
:
public String veikia() {
...
return valuey;
}
// Added parameter valuey
public void checkButtonClick(String valuey) {
...
}
@Override
public void onCreate(Bundle savedInstanceState) {
...
// Call checkButtonClick() with the parameter valuey returned from veikia()
checkButtonClick(veikia());
}
更改检查按钮的签名单击方法:
public void checkButtonClick(){...}
致:
然后在onCreate
方法上,而不是调用:
checkButtonClick();
veikia();
按相反顺序调用函数,如:
String valuey = veikia();
checkButtonClick(valuey)
编辑:
为了从覆盖的方法内部访问valuey
,例如OnClickListener.onClick(View v)
,必须将valuey
定义为成员变量。最终结果如下:
public class ListViewCheckboxesActivity extends Activity implements View.OnClickListener {
private String valuey;
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
valuey = veikia();
}
@Override
public void onClick(View view) {
// do something with valuey, for example print it to the logger
Log.d("TAG", valuey);
}
}
更改检查按钮的签名单击方法:
public void checkButtonClick(){...}
致:
然后在onCreate
方法上,而不是调用:
checkButtonClick();
veikia();
按相反顺序调用函数,如:
String valuey = veikia();
checkButtonClick(valuey)
编辑:
为了从覆盖的方法内部访问valuey
,例如OnClickListener.onClick(View v)
,必须将valuey
定义为成员变量。最终结果如下:
public class ListViewCheckboxesActivity extends Activity implements View.OnClickListener {
private String valuey;
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
valuey = veikia();
}
@Override
public void onClick(View view) {
// do something with valuey, for example print it to the logger
Log.d("TAG", valuey);
}
}
public void checkButtonClick(){String s=veikia();…}
这会很好,但它会再次运行我的函数,我只需要“valuey”的值,你现在只需要调用checkButtonClick();
insideonCreate
public void checkButtonClick(){String s=vekia();…}
这会很好,但它会再次运行我的函数,我只需要“valuey”的值,你现在只需要调用checkButtonClick();
内部onCreate
以及现在如何将该值传递给onClick(视图v)?由于您正在重写onClick
您不能更改它的签名。您需要做的是将valuey
定义为成员变量,然后在onClick
方法中使用它,以及我如何做?您能给我写一个例子吗?@RytisVanagas我更新了我的答案,以显示它在您的特定情况下是如何做的,因为您是declaringOnClickListener
作为一个匿名类,您应该删除实现View.OnClickListener
以及现在如何将该值传递给onClick(视图v)?由于您正在重写onClick
您不能更改它的签名。您需要做的是将valuey
定义为成员变量,然后在onClick
方法中使用它,以及我如何做?您能给我写一个例子吗?@RytisVanagas我更新了我的答案,以显示它在您的特定情况下是如何做的,因为您是declaringOnClickListener
作为一个匿名类,您应该删除implements View.OnClickListener