0

我的代码中有两个活动文件,第一个活动文件加载布局搜索,第二个文件加载布局列表。我在布局搜索中有一个文本框并输入一些文本。我想在我的第二个活动文件中使用此文本,但我无法访问它,因为它在布局搜索中。我怎样才能做到这一点?这里是第一个活动文件,这里有一个名为searchedText的 EditText 项,我想在第二个活动文件中使用它。

public class SearchActivity extends Activity{

public EditText searchedText;
public RadioGroup radioGroup;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.search);

}

public void onStart(){
    super.onStart();
    searchedText = (EditText) findViewById(R.id.searchText);
    Button searchinSearchButton = (Button)findViewById(R.id.searchInSearch);
    radioGroup = (RadioGroup) findViewById(R.id.radioGroup1);

    searchinSearchButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            String searched=searchedText.getText().toString();
            Intent myIntent = new Intent(v.getContext(),   
                            SearchListActivity.class);
            startActivityForResult(myIntent, 1);

        } 

    });
}

}

这是第二个活动文件:

public class SearchListActivity extends Activity{

public DatabaseAdapter db;
public ArrayList<String> myList;
public ListView listview;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);

    db = new DatabaseAdapter(this);
    myList = new ArrayList<String>();

    getContacts();

    // Example of retrieving tweets of the user "mashable" and adding them to   
myList

    /*
    ArrayList<Tweet> tweets= new ArrayList<Tweet>();
    tweets.addAll(Twitter.getTimeline("mashable", 10));
    for(Tweet t: tweets){
        myList.add(t.username +  ": " + t.message + " Tweet id: "+ t.id);
    }
    */
    printList();

}

public void printList(){

    listview = (ListView)findViewById(R.id.contactcListView);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1, myList);

    listview.setAdapter(adapter);
}
public void getContacts() {

    db.open();
    Cursor c = db.getContactbyName("y");
    if (c.moveToFirst()) {
        do {
            DisplayContact(c);

        } while (c.moveToNext());
    }
    db.close();
}

public void DisplayContact(Cursor c) {

    String entry = "";
    // if you add another attribute to your table, you need to change 3 into x
    for (int i=1; i<5;i++){
        entry += c.getString(i) + "\n";
    }
    myList.add(entry);
}

}

在第二个活动文件中,您可以看到 getContacts() 方法。在那里,我通过 Cursor c = db.getContactbyName("y"); 搜索 但我想搜索输入 texbox 的任何用户,而不是“y”,它位于名为searchedText的第一个活动文件中。我怎样才能做到这一点?

谢谢

4

1 回答 1

0

Intent当您开始第二个活动时,将文本作为额外内容发送。

searchinSearchButton.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        String searched=searchedText.getText().toString();
        Intent myIntent = new Intent(v.getContext(),   
                        SearchListActivity.class);
        myIntent.putExtra("SEARCH_STRING",searched);
        startActivityForResult(myIntent, 1);

    } 

});

并在你onCreate得到额外的。你可以使用Intent.getStringExtra(String name) 换句话说:

  mySearched = getIntent().getStringExtra("SEARCH_STRING");

只需确保在使用之前查看是否有任何内容为空。

于 2013-03-26T12:30:47.193 回答