首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用onClick ListView打开一个新的活动?

如何使用onClick ListView打开一个新的活动?
EN

Stack Overflow用户
提问于 2012-07-25 12:12:51
回答 5查看 2.1K关注 0票数 1

嗨,Everybody.My的目标是当我想要点击ListView中的一个特定项目时,它会打开一个我已经编程的新活动。例如:当我点击"João“时,我希望它打开一个名为Joao的类。我试过使用简单的代码,但它不起作用。当我在ListView上点击João的名字时,没有任何反应。

这是我正在使用的代码:

代码语言:javascript
运行
复制
public class Searchsort extends Activity {

    private ListView lv1;
    private EditText ed;
    private String lv_arr[]={"John","Mary","Carl","Rose","Charlie","Allan", "João"};
    private ArrayList<String> arr_sort= new ArrayList<String>();
    int textlength=0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        lv1 = (ListView)findViewById(R.id.ListView01);
        ed = (EditText)findViewById(R.id.EditText01);

        // By using setAdpater method in listview we an add string array in list.

        lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 ,   lv_arr));
        ed.addTextChangedListener(new TextWatcher() {

            public void afterTextChanged(Editable s) {

            }

            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            public void onTextChanged(CharSequence s, int start, int before, int count) {
                textlength=ed.getText().length();
                arr_sort.clear();
                for(int i=0;i<lv_arr.length;i++) {
                    if(textlength<=lv_arr[i].length()) {
                        if(ed.getText().toString().equalsIgnoreCase((String) lv_arr[i].subSequence(0,  textlength))) {
                            arr_sort.add(lv_arr[i]);
                        }
                    }
                }

                lv1.setAdapter(new ArrayAdapter<String>  (Searchsort.this,android.R.layout.simple_list_item_1 , arr_sort));

            }
        });
    }

    public void onListItemClick(ListView parent, View v, int position, long id) {
        if ("João".equals(lv_arr[position])) { 
            Intent myIntent = new Intent(Searchsort.this, Joao.class);
            startActivity(myIntent);
        }
    }

}
EN

回答 5

Stack Overflow用户

发布于 2012-07-25 12:40:58

代码语言:javascript
运行
复制
lv1.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

       Intent intent = new Intent(Searchsort.this, Joao.class);                                                  

                    startActivity(intent);          
                }
            }        
        });
票数 0
EN

Stack Overflow用户

发布于 2012-07-25 12:44:00

ListView使用setOnItemClickListener,并在那里处理打开的活动。

票数 0
EN

Stack Overflow用户

发布于 2012-07-25 13:20:53

请检查您的Androidmanifest.xml

添加类似声明:

代码语言:javascript
运行
复制
<activity android:name=".CLASS_NAME"> </activity>

你必须像那样声明所有的activitIes。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11642599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档