2013-03-06 3 views
-2

Я хочу передать переменную в мой DBConnector.Java, где я выполняю SQLite-запрос, но я не уверен, как это сделать и вам нужна помощь.Android - Передача переменных в другую активность

public void onItemSelected(AdapterView<?> parent, View view, int position,long id) 
    { 
       spinnerRub.setSelection(position);  
      myRub = (String) spinnerRub.getSelectedItem(); 

    } 

Теперь я хочу передать myRub моему DBConnector.Java, где у меня есть:

public List<String> getAllCapabilities1() 
{    

List<String> Caps = new ArrayList<String>(); 

       String selectQuery = "SELECT Cap_Name FROM capability where Rub_ID = 'myRub'"; 

      SQLiteDatabase database = this.dbOpenHelper.getReadableDatabase(); 
      //Cursor cursor = database.rawQuery(selectQuery, null); 
      Cursor cursor = database.rawQuery(selectQuery, null); 
      // looping through all rows and adding to list 
      if (cursor.moveToFirst()) 
      { 
       do 
       { 
        Caps.add(cursor.getString(0)); 
       } while (cursor.moveToNext()); 
      } 

      // closing connection 
      cursor.close(); 
      database.close(); 

      // returning lables 
      return Caps; 
     } 

Но я изо всех сил, чтобы сделать это, и нуждаются в помощи.

+1

Использовать общие предпочтения или передавать данные с намерением –

ответ

4

Используйте Намерение, чтобы передать ваши данные:

i.putExtra("myRub",myRub); 

где i is Intent объект.

Получить его в другой деятельности с использованием

Bundle extras = getIntent().getExtras(); 
String a = extras.getString("myRub"); 
+0

Спасибо за ответ, но я получаю эту ошибку в DBConnector.java «Метод getExtras() не определен для типа Object« Не могли бы вы рассказать мне, почему я получаю эту ошибку? Благодарю. – Trojan

+1

Что такое DBConnector.java? Что он распространяет? Если это класс, который вы написали? Разве вы не можете создать публичный метод, который принимает строку? –

+0

@DeanWild его просто класс и ничего не расшифровывает, и мой метод является общедоступным методом, как вы можете видеть, но я не уверен, что именно я пропал без вести. – Trojan

1

Изменить это в файле dbconnetion.java и передать myrub с помощью метода или sharedpref

String selectQuery = "SELECT Cap_Name FROM capability where Rub_ID = '"+myRub+"'"; 

Между двумя активность

Intent i = new Intent(Intent.ACTION_VIEW); 
i.putExtra("myrub", "This value one for ActivityTwo "); 
startActivity(i); 
+0

Спасибо за исправление, но я также хочу знать, чтобы передать значения между этими двумя действиями. – Trojan

-1

использование намерения передавать данные между деятельностью

Intent intent = new Intent(yourActivity.this, DBConnector.class); 
    intent.putExtra("myRub", myRub); 
    startActivity(intent); 

и использовать getIntent().getExtras(), чтобы получить его обратно

+0

-1 для вызова деятельности, он просто просит передать значение –

+0

@ Мухаммад Фарас со ссылкой на «Спасибо за исправление, но я также хочу знать, чтобы передать значения между этими двумя действиями. »комментарий ответа http: // stackoverflow.com/a/15245448/1273336, я написал код для передачи данных между действиями и извлечения. В любом случае, я также рассматривал комментарии и при ответе :) –

0

Вот образец для передачи данных деятельность и поиск

Intent intent = new Intent(); 
intent.setClass(this, New.class); 

Bundle b = new Bundle(); 
b.putInt("action", nResponse); // integer value 
b.putString("homename", sHomeName); // string value 
intent.putExtras(b); 
startActivity(intent); 

в вас OnCreate метод new.class пожалуйста, следуйте

Bundle b = getIntent().getExtras(); 
if(b != null){ 
    nAction = b.getInt("action"); 
    sHomeName = b.getString("homename"); 
} 
0

В вашей деятельности (Im если у вас есть ссылка на dbConnector?):

spinnerRub.setSelection(position);  
myRub = (String) spinnerRub.getSelectedItem(); 
dbConnector.setMyRub(myRub); 

В DBConnector.java

public void setMyRub(String myRub){ 
    // do what you need to do with myRub 
} 
Смежные вопросы