2016-01-05 88 views
0

我的应用程序从非活动类读取数据库,并使用数据库中的数据填充微调器。然后用户从微调器中选择一个值并用按钮确认。现在我需要这个价值,回到非活动类中进一步编码。在活动和非活动之间传递值

我试过return,但确认按钮的代码是public void onClick(View v)return不起作用。 我应该在哪里放置return,当我按下按钮或者有任何其他方式时,我可以在我的非活动课中获得选定的价值。

代码,如果它不清楚我想要做什么。

public class MainActivity extends Activity implements OnItemSelectedListener { 
/*private List<String> Banka; 
private Cursor cBanka;*/ 
private MyDatabase db; 
Spinner spinner; 
Button button; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    spinner = (Spinner) findViewById(R.id.spinner); 
    button = (Button) findViewById(R.id.btnPotrdi); 
    spinner.setOnItemSelectedListener(this); 
    loadSpinnerData(); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String bank=spinner.getSelectedItem().toString(); 
      Intent next= new Intent(MainActivity.this, ChooseLocation.class); 
      startActivity(next); 

     } 
    }); 
    } 



private void loadSpinnerData() { 
db = new MyDatabase(this); 

List<String> banks = db.getBanka(); 
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, banks); 
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
//Log.d("wtf", "listview: " + spinner); 
spinner.setAdapter(dataAdapter); 
} 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, 
          long id) { 
    // On selecting a spinner item 
    String label = parent.getItemAtPosition(position).toString(); 

    // Showing selected spinner item 
    Toast.makeText(parent.getContext(), "Izbrali ste: " + label, 
      Toast.LENGTH_LONG).show(); 

} 

@Override 
public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 

} 
@Override 
protected void onDestroy(){ 
    super.onDestroy(); 
    //cBanka.close(); 
    db.close(); 
} 

}

+1

你的问题不明确。您想从哪里发送数据。和哪个班? – Msp

+0

我想将它从MainActivity发送到MyDatabase类。 – user3438110

回答

0

你不需要任何回报。只需在MyDatabase课程中添加一个方法,并从MainActivity调用该方法即可。

MainActivity:

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     String bank=spinner.getSelectedItem().toString(); 
     db = new MyDatabase(MainActivity.this); // if needed 
     db.setBank(bank); // or any other name you want 
    } 
}); 

而且在MyDatabase

public class MyDatabase{ 
    public String selectedBank = ""; 

    public void setBank(String bank) { // or any other name you want 
     selectedBank = bank; 
     // use your data for whatever you want 
    } 
} 
+0

伟大的评论,但我想要其他方式,点击按钮我想发送选定的项目从微调到我的数据库 – user3438110

+0

什么是你的确切意思是通过发送数据。我想通过这个,我们将数据发送到MyDatabase – Msp

+0

哦,我的坏,你完全rigtht,谢谢。 – user3438110

0

当你使用db.getBanka(),可以肯定的使用db.setWhateverIWant(passedData)和你non-activity类,你有一套方法:

public void setWhateverIWant(Obj passedData){ 
    this.myData = passedData; 
}