简体   繁体   English

如何在Android中使用Intent调用下一个活动的方法

[英]How to use intent to call the method of next activity in android

What i am doing now is--> i'm getting data from the webservice in one activity and displaying the entire data in a listview. 我现在正在做的是->我正在通过一项活动从Web服务获取数据,并在列表视图中显示整个数据。 i added just a search functinality on the presented listview itself. 我在所提供的listview本身上仅添加了搜索功能。

My requirement is --> i should have a search button in the first activity. 我的要求是->在第一个活动中我应该有一个搜索按钮。 When it is clicked, should show the related result in second activity, to do this added putExtras in the intent like this intent.putExtra("search", searchBox); 单击时,应在第二个活动中显示相关结果,以在此putExtras中添加putExtras这样的intent.putExtra("search", searchBox); that is the second activities search function keyword. 即第二个活动搜索功能关键字。 but still m not getting the searched output. 但仍然无法获得搜索到的输出。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


StrictMode.ThreadPolicy policy = new      StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy); 

final EditText searchBox=(EditText) findViewById(R.id.search);
final ListView  list=(ListView)findViewById(android.R.id.list);

//get the LayoutInflater for inflating the customomView
 //this will be used in the custom adapter
 inflater=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);


  final  ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String,  String>>();
    // Creating JSON Parser instance
            final JSONParser jParser = new JSONParser();

            // getting JSON string from URL
            JSONObject json = jParser.getJSONFromUrl(URL);
            try {
                 posts = json.getJSONArray(KEY_POSTS);

    // looping through all song nodes <song>
            for(int i = 0; i < posts.length(); i++){
                JSONObject c = posts.getJSONObject(i);
                // Storing each json item in variable
                String id = c.getString(KEY_ID);
                String title = c.getString(KEY_TITLE);
                String date = c.getString(KEY_DATE);
                String content = c.getString(KEY_CONTENT);
                // to remove all <P> </p> and <br /> and replace with ""
                 content = content.replace("<br />", "");
                 content = content.replace("<p>", "");
                 content = content.replace("</p>", "");

                //authornumber is agin  JSON Object
                JSONObject author = c.getJSONObject(KEY_AUTHOR);
                String name = author.getString(KEY_NAME);

                String url = null;
                String slug = null;
                try {
                JSONArray atta = c.getJSONArray("attachments");
                for(int j = 0; j < atta.length(); j++){
                    JSONObject d = atta.getJSONObject(j);

                    slug = d.getString(KEY_SLUG);

                    JSONObject images = d.getJSONObject(KEY_IMAGES);

                    JSONObject thumbnail = images.getJSONObject(KEY_THUMB_URL);
                    url = thumbnail.getString(KEY_URL);

                }
                } catch (Exception e) {
                    e.printStackTrace();

                }

        // creating new HashMap
        HashMap<String, String> map = new HashMap<String, String>();

        // adding each child node to HashMap key => value
        map.put(KEY_ID, id);
        map.put(KEY_TITLE, title);
        map.put(KEY_DATE, date);
        map.put(KEY_NAME, name);
        map.put(KEY_CONTENT, content);
        map.put(KEY_SLUG, slug);
        map.put(KEY_URL, url);
   //                System.out.println("the map is title "+map.get("title"));
     //title2.add(map.get("title"));
        // adding HashList to ArrayList
        songsList.add(map);
            }   

            }catch (JSONException e) {
                e.printStackTrace();

                }


          //searchResults=OriginalValues initially
            searchResults=new ArrayList<HashMap<String, String>>(songsList);

     // Getting adapter by passing json data ArrayList
        adapter=new LazyAdapter(this, songsList);   

         list.setAdapter(adapter);


         searchBox.addTextChangedListener(new TextWatcher() {

             public void onTextChanged(CharSequence s, int start, int before, int count) {
               //get the text in the EditText
                searchString=searchBox.getText().toString();
                textLength=searchString.length();
               searchResults.clear();

               for(int i=0;i<songsList.size();i++)
               {
               playerName=songsList.get(i).get("title").toString();
              System.out.println("player name "+playerName);
              if(textLength<=playerName.length()){
              //compare the String in EditText with Names in the    ArrayList
                         if(searchString.equalsIgnoreCase(playerName.substring(0,textLength))){
                searchResults.add(songsList.get(i));
                System.out.println("the array list is "+songsList.get(i));
                adapter=new LazyAdapter(Home.this, searchResults);   

                 list.setAdapter(adapter);
                }

                  }

Intents are for activity and not methods inside them , So you cannot use it to call any specific method however you can use extras to figure out what you want to do \\ 意图是针对活动的,而不是针对其中的方法的,因此,不能使用它来调用任何特定的方法,但是可以使用附加功能来确定要执行的操作\\

like after when you get extras from Intent you can , 就像当您从Intent获得更多功能之后,

 if extras has "search" value 
 then do something about it

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM