0

コードに2つのアクティビティファイルがあり、最初のアクティビティファイルはレイアウト検索をロードし、2番目のファイルはレイアウトリストをロードします。レイアウト検索にテキストボックスがあり、テキストを入力します。このテキストを2番目のアクティビティファイルで使用したいのですが、レイアウト検索であるため到達できません。これどうやってするの?ここに最初のアクティビティファイル、ここにsearchedTextというEditTextアイテムがあり、2番目のアクティビティファイルで使用したいと思います。

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);

        } 

    });
}

}

そして、これが2番目のアクティビティファイルです。

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);
}

}

この2番目のアクティビティファイルでは、getContacts()メソッドを確認できます。そこで、カーソルで検索しますc = db.getContactbyName( "y"); しかし、「y」の代わりに、texboxに入ったユーザーを検索したいのですが、これはsearchedTextという最初のアクティビティファイルにあります。これどうやってするの?

ありがとう

4

1 に答える 1

0

Intent2番目のアクティビティを開始するときに、テキストを追加で送信します。

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がないかどうかを確認してください。

于 2013-03-26T12:30:47.193 に答える