如何在其布局中使用 android:Onclick="listViewMetod" 编写 listView 的方法?

Posted

技术标签:

【中文标题】如何在其布局中使用 android:Onclick="listViewMetod" 编写 listView 的方法?【英文标题】:How to write method for listView with android:Onclick="listViewMetod" in its layout? 【发布时间】:2012-02-23 12:52:55 【问题描述】:

我正在尝试在我的主要活动中创建 5 个按钮,并尝试在其中添加新活动。

在第五个按钮中,我遇到了 listView 的问题。

在下面的代码中,我是否遗漏了 listView(View v) 方法正常工作所需的任何内容?

这是我的代码:

listActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical" >

<ListView
    android:id="@+id/listView1"
    android:layout_
    android:layout_ >
</ListView>
   
</LinearLayout>

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical" >

<TextView
    android:layout_
    android:layout_
    android:text="@string/hello" />

<Button
    android:id="@+id/button1"
    android:layout_
    android:layout_
    android:onClick="newActivity"
    android:text="Yeni Aktivite" />

<Button
    android:id="@+id/button2"
    android:layout_
    android:layout_
    android:onClick="toast"
    android:text="Toast" />

<Button
    android:id="@+id/button3"
    android:layout_
    android:layout_
    android:onClick="web"
    android:text="Web" />

<Button
    android:id="@+id/button4"
    android:layout_
    android:layout_
    android:onClick="preferences"
    android:text="Preferences" />

<Button
    android:id="@+id/button5"
    android:layout_
    android:layout_
    android:onClick="listVieww"
    android:text="ListView" />

  </LinearLayout>

主要活动

package com.uygulamalar.odev;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class OdevKarmaActivity extends Activity 

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

    public void newActivity(View v) 
        Intent intent = new Intent(getApplicationContext(), NewActivity.class);
        startActivity(intent);
    

    public void toast(View v) 
        Toast toast=Toast.makeText(getApplicationContext(), "vazzupp", 9999);
        toast.show();
    

    public void listVieww(View v) 
        ListView listView1;
        String jedigiller[] = "pelin","figen","aylin","gizem";
    
        listView1=(ListView) findViewById(R.id.listView1);
        listView1.setAdapter(new
                ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , jedigiller));
    

运行时,代码会强制关闭 Android 模拟器。

我怀疑这个问题与listView(View v)方法有关,我在使用它时是否遗漏了什么?

【问题讨论】:

它会给你什么错误?在哪一行? 【参考方案1】:

您试图引用在listActivity.xml 中找到的ListView,而您已将内容视图设置为main.xml

要么将ListView 复制到main.xml,要么在listVieww() 中启动一个新的Activity,以显示列表并使用setContentView(R.layout.listActivity);

【讨论】:

以上是关于如何在其布局中使用 android:Onclick="listViewMetod" 编写 listView 的方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Fragment 中捕获 onclick 事件

如何告诉 ProGuard 保留用于 onClick 的函数?

如何绑定android点击事件

在 ViewPager 中使用 android:onclick

Android使用TextView,设置onClick属性无效解决的方法

在 iOS 中使用自动布局,如何将标签放置在其包含视图高度的 1/3 处?