How open new activity clicking an item in listview?

前端 未结 10 2017
我在风中等你
我在风中等你 2020-11-30 10:17

I can\'t start a new activity clicking over an item in my listview. I want that onItemClick can open the ApkInfoActivity.. Actually when i click no

相关标签:
10条回答
  • 2020-11-30 10:39

    You need to use Intent, You can also pass the clicked listview item data to your new activity.

    String classes[] = { "Quiz Trivia", "Sign A New User", "Friend List",
    "Download A File", "Upload A File", "Select Pdf files", "Memory Game",
    "Dzidza Maths", "Write Exam" };
    
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                   
    Intent intent = new Intent(getApplicationContext(),ApkInfoActivity.class);
                    intent.putExtra("name",classes[i]);
                    startActivity(intent);
    
    
            }
        });
    
    }
    

    Output:

    You can find the whole tutorial here

    0 讨论(0)
  • 2020-11-30 10:39

    // Add ArrayList and ArrayAdapter:

        final ArrayList<String> listItems = new ArrayList<String>();
            listItems.add("image_one");
            listItems.add("image_two");
            listItems.add("image_three");
    
        ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<>(this, 
            android.R.layout.simple_list_item_1, listItems);
            myListView.setAdapter(myArrayAdapter);
    

    // Add ArrayList of Classes:

        final ArrayList<Class> intents = new ArrayList<Class>();
            intents.add(image_one.class);
            intents.add(image_two.class);
            intents.add(image_three.class);
    

    // Click on list item to open Class from ArrayList of Classes:

        myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int 
            position, long id) {
    
                Intent listIntent = new Intent(getApplicationContext(), 
                intents.get(position)); 
                startActivity(listIntent);
            }
        });
    

    SEE IMAGE OF CLASS NAMES HERE

    0 讨论(0)
  • 2020-11-30 10:41

    Add setOnItemclickListener() for your Listview.

    0 讨论(0)
  • 2020-11-30 10:46

    Giving an explanation to my answer. I assume that you have set your listview in order just as in your posted code. I will only review this part of your code: super.onListItemClick(l, v, position, id); I don't this is necessary. In the case of the example I gave:

    lv.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
          if(position==0){
         Intent appInfo = new Intent(SwahiliService.this, DisplayActivity.class);
          startActivity(appInfo);
      } 
          if(position==1){
              Intent english=new Intent(SwahiliService.this,EnglishService.class);
              startActivity(english);
          }
          if(position==2){
              Toast.makeText(getApplicationContext(),"You have selected pst3", Toast.LENGTH_LONG).show();
          }
    

    I am just setting a lister to my listview which I have called lv, my adapter(which is the holder of my listview items) sets three variables, a View, int for position and long for argument:, I refer to the item selected on listview by its position which as usual starts at 0 (though you can instantiate it to start at any other number as you wish e,g int position=1, starts the item count at 1). From here you can then use any control struct to start activity as per item clicked, in my case, I used a for loop since I assumed my listview has three items only, for larger listview items, you can use a for-loop. Please note how I start my new activity by first referencing to current activity as follows (SwahiliService.this) of which can safely be replace by (this keyword only) and then follows the activity I want to start. I hope this is now more elaborate.

    0 讨论(0)
  • 2020-11-30 10:47

    for instance if u want to open an activity based on the text u click in listview,ie if "abcd" is the option clicked on the listview and u want to open the activity with the very same name "abcd",then perform this ..

    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
    
        String temp=yourarray[position];
    
    
        try{
            Class myclass=Class.forName("yourpackagename."+temp);
            Intent in=new Intent(this,myclass);
            startActivity(in);
            }catch(Exception e){
    
            }
    
    
    }
    
    0 讨论(0)
  • 2020-11-30 10:54
    public class MenuYangu extends ListActivity {
    
    String classes[] = { "Quiz Trivia", "Sign A New User", "Friend List",
    "Download A File", "Upload A File", "Select Pdf files", "Memory Game",
    "Dzidza Maths", "Write Exam" };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
       // TODO Auto-generated method stub
       super.onCreate(savedInstanceState);
       setListAdapter(new ArrayAdapter<String>(Menuone.this,
       android.R.layout.simple_list_item_1, classes));
    
    }
    
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) 
    {
         // TODO Auto-generated method stub
         super.onListItemClick(l, v, position, id);
    
    if (position == 0) {
    Intent intent = new Intent(this, QuizActivity.class);
    startActivity(intent);
    }
    else if (position == 1) {
    Intent intent = new Intent(this, SignUp.class);
    startActivity(intent);
    }
     else if (position == 2) {
     Intent intent = new Intent(this, FriendList.class);
     startActivity(intent);
     } 
     }
    
     }
    
     }
    
    0 讨论(0)
提交回复
热议问题