[英]How to pass value from one function to another
您好,我想將值“ valuey”從方法veikia()傳遞給方法checkButtonClick()。 我在Java上是newby,所以很抱歉如果這個問題已經回答了,因為我不明白:)
祝你今天愉快 :)
這是我的代碼:
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();
}
});
}
}
只需在調用它時將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());
}
從以下位置更改您的checkButtonClick
方法的簽名:
public void checkButtonClick(){...}
至:
public void checkButtonClick(String myString) {
// Use the value of myString here
}
然后在您的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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.