将onClickListener添加到ListView中的特定项目

时间:2017-01-08 17:58:04

标签: android listview

请我尝试添加了解如何将onItemClickListener添加到followng代码中,以便在单击“Smartphone Plans”时,其活动开始,依此类推。我已经在StackOverflow上看到了与此问题有关的其他问题,但不明白如何去解决它们。 我已经添加了一个onItemClickListener,但不了解如何将其设置为特定的列表项。 这是代码

package devchuks.com.rechargeit;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.app.ListActivity;

import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class EtisalatData extends AppCompatActivity {
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_etisalat_data);

        listView = (ListView) findViewById(R.id.list);


        String[] values = new String[] {
                "Smartphone Plans",
                "Internet Bundles",
                "Weekend Plans",

        };



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



        listView.setAdapter(adapter);


        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {


            }

        });
    }

}

5 个答案:

答案 0 :(得分:4)

您可以像这样定义public class testTree { public static void main(String[] args){ SuffixTree sTree = new SuffixTree("hahaa"); //test suffix if(sTree.infix("ha")){ System.out.println(":)"); } else{ System.out.println(":("); } if(sTree.suffix("ha")){ // true only for a,ha,haa,ahaa System.out.println(":)"); } else{ System.out.println(":("); } //test substring // sTree.printMap(); } } 以转到不同的活动,点击不同的元素。

listView.setOnItemClickListener

答案 1 :(得分:2)

只要单击任何列表项,就会调用

onItemClick。该位置将是适配器中视图的位置。

请参考 - How to handle the click event in Listview in android?

由于 斯利拉姆

答案 2 :(得分:2)

如果这有帮助并且是您关心的问题 `

listView.setOnItemClickListener(new OnItemClickListener() {
                @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                 String data = values[position];
                 switch(data){
                 case "Smartphone Plans":
                 // do somwthing
                 break;

                // similarly for other two values.
                 }
            }

        });`

答案 3 :(得分:2)

试试这个:

 listView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        String text = values[position];
        if(text.equals("Smartphone Plans")){ //your specific list item text
            Intent i = new Intent(MainActivity.this, AnotherActivity.class);
            i.putExtra("TEXT", text);
            startActivity(i);
        }
    }
}

答案 4 :(得分:2)

下面的方法为您提供单击行的位置。利用阵列中的这一点和价值。

 @Override
   public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
      // Move your values array to member array or make it final to use
      // in Anonymous class
      final String selectedValue = values[position];

     Intent intent = null
    // Now add case and start activity 
    if("Smartphone Plans".equals(selectedValue)) {
      intent = new Intent(EtisalatData.this, SmartPhonePlan.class);
    }
    else if("other Plans".equals(selectedValue)){
      // other action
    }
       //... more cases and at the end start your activity if its not null
     startActivity(intent);
}