2013-03-04 127 views
0

MAIN.JAVAAndroid SQLite:我如何将变量传输到不同的活动?

public void onClick(View arg0) { 
    switch (arg0.getId()) { 
    case R.id.buttonupdate: 
     String name = sqlName.getText().toString(); 
     String value = sqlValue.getText().toString(); 
     MainActivity entry = new MainActivity(Main.this); 
     entry.open(); 
     entry.createEntry(name, value); 
     entry.close(); 
     break; 
    case R.id.buttonview: 
     Intent intentone = new Intent(); 
     intentone.setClassName("com.example.sqltwo", "com.example.sqltwo.View"); 
     startActivity(intentone); 
     break; 
    case R.id.buttonsearch: 
     String searchtext = sqlQuery_value.getText().toString(); 
     break; 
    } public void onClick(View arg0) { 
    switch (arg0.getId()) { 
    case R.id.buttonsearch: 
     String name = sqlName.getText().toString(); 
     String value = sqlValue.getText().toString(); 
     MainActivity entry = new MainActivity(Main.this); 
     entry.open(); 
     entry.createEntry(name, value); 
     entry.close(); 
     break; 
    case R.id.buttonview: 
     Intent intentone = new Intent(); 
     intentone.setClassName("com.example.sqltwo", "com.example.sqltwo.View"); 
     startActivity(intentone); 
     break; 
    case R.id.buttonsearch: 
     String searchtext = sqlQuery_value.getText().toString(); 
     break; 
    } 

MAINACTIVITY.JAVA

public long createEntry(String name, String value) { 
    ContentValues cv = new ContentValues(); 
      cv.put(KEY_NAMES, name); 
      cv.put(KEY_VALUES, value); 
      return qdatabase.insert(DATABASE_TABLE, null, cv); 
} 
public String getData() { 
    String[] columns = new String[]{KEY_NAMES, KEY_VALUES}; 
    Cursor c = qdatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    String result = ""; 

    int iValue = c.getColumnIndex(KEY_VALUES); 
    int iName = c.getColumnIndex(KEY_NAMES); 

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
     result = result + c.getString(iName) + "\n" + c.getString(iValue) + "\n"; 
    } 
    return result; 
} 
public String search(String searchtext) { 
    String searchresult = ""; 
    String arg = searchtext; 

    String query = "select * from " + DATABASE_TABLE + " where title=\"" + arg +"\""; 

    Cursor c = qdatabase.rawQuery(query, new String[] {arg}); 
    int iName = c.getColumnIndex(KEY_NAMES); 

    if (c.moveToFirst()) { 
     searchresult = searchresult + c.getString(iName); 
    } 

    return searchresult; 

} 

在这种情况下R.id.buttonsearch:

它吸引的文字编辑,并将其存储到SEARCHTEXT。 我需要MainActivity中的搜索文本来运行搜索功能并返回与该查询匹配的所有行。如何将Main中的搜索文本链接到MainActivity?

在MAIN.JAVA
+0

Ÿ不要你的UE main.java中的getter方法? – 2013-03-04 14:38:40

+0

我在Android中的知识是有限的。我不知道什么是getter方法,我不知道AsyncTask如何以及为什么会在这里工作。 – Malaka 2013-03-05 17:41:00

+0

在main.java中使用返回该字符串或使search_string为公共静态的方法,以便serach_string将在所有其他类中可用。 – 2013-03-06 04:53:38

回答

0

使用的AsyncTask中的AsyncTask你梅托德doInBackground连接到数据库(使用源MAINACTIVITY.JAVA)和梅托德onPostExecute改变MAIN.JAVA

例如

private class loudAllTranslate extends 
     AsyncTask<Void, Void, HashMap<String, Translate>> { 

    Context context; 
    String fullText; 

    loudAllTranslate(Context cont, String fullText_) { 
     context = cont; 
     fullText = fullText_; 
    } 

    @Override 
    protected void onPostExecute(HashMap<String, Translate> success) { 
     super.onPostExecute(success); 

     // do somting 

    } 

    @Override 
    protected HashMap<String, Translate> doInBackground(Void... params) { 

     LBD conection = new LBD(context); 
     conection.open(); 
     conection.tblSettings(); 

     HashMap<String, Translate> listTranstate = Settings 
       .updateAllTranslate(fullText); 
     conection.close(); 
     return listTranstate; 

    } 

}