如何从另一个活动文件中获取活动文件中的变量?

时间:2013-03-26 12:24:00

标签: android android-activity

我的代码中有两个活动文件,第一个活动文件加载布局搜索,第二个文件加载布局列表。我在布局搜索中有一个文本框并输入一些文本。我想在我的第二个活动文件中使用此文本,但由于它在布局搜索中,因此我无法访问它。我怎样才能做到这一点?这是第一个活动文件,这里有一个名为 searchingText 的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”,这是第一个名为 searchingText 的活动文件。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分: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");

在使用它之前,请确保查看是否有任何内容为null。