【问题标题】:List View selection to start a new Activity列表视图选择开始一个新的活动
【发布时间】:2023-03-19 18:47:01
【问题描述】:

所以我正在使用列表视图来尝试在选择某个项目时打开特定的活动。这是我现在正在使用的代码。我知道它是错误的,但不确定我需要改变它以使其工作。我想我需要一个意图并尝试了一些想法,但没有想出太多。谢谢。

package table.periodic;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class List extends ListActivity{



String[] elements={"actinium", "aluminum", "americium", 
        "antimony", "argon", "arsenic", "astatine", "barium", 
        "berkelium", "beryllium", "bismuth", "bohrium", "boron", 
        "bromine", "cadmium", "calcium", "californium", "carbon", 
        "cerium", "cesium", "chlorine", "chromium", "cobalt", 
        "copper", "copernicium", "curium", "darmstadtium", "dubnium", 
        "dysprosium", "einsteinium", "erbium", "europium", "fermium", 
        "fluorine", "francium", "gadolinium", "gallium", "germanium", 
        "gold", "hafnium", "hassium", "helium", "holmium", 
        "hydrogen", "indium", "iodine", "iridium", "iron", 
        "krypton", "lanthanum", "lawrencium", "lead", "lithium", 
        "lutetium", "magnesium", "manganese", "meitnerium", "mendelevium", 
        "mercury", "molybdenum", "neodymium", "neon", "neptunium", 
        "nickel", "niobium", "nitrogen", "nobelium", "osmium", 
        "oxygen", "palladium", "phosphorus", "platinum", "plutonium", 
        "polonium", "potassium", "praseodymium", "promethium", "protactinium", 
        "radium", "radon", "rhenium", "rhodium", "roentgenium", "rubidium", 
        "ruthenium", "rutherfordium", "samarium", "scandium", "seaborgium", 
        "selenium", "silicon", "silver", "sodium", "strontium", "sulfur", 
        "tantalum", "technetium", "tellurium", "terbium", "thallium", "thorium", 
        "thulium", "tin", "titanium", "tungsten", "ununhexium", "ununoctium", 
        "ununpentium", "ununquadium", "ununseptium", "ununtrium", "uranium", 
        "vanadium", "xenon", "ytterbium", "yttrium", "zinc", "zirconium"};

 public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.list); 
    setListAdapter(new ArrayAdapter<String>(
            this, android.R.layout.simple_list_item_1, 
            elements));

 }

 public void onListItemClick(ListView parent, View v, int position,
         long id){


     if ("actinium".equals(elements[position]))
        {startActivity(Actinium.class);}

     else if ("aluminum".equals(elements[position]))
        {startActivity(Aluminum.class);}



 }

【问题讨论】:

    标签: android listview android-activity android-intent


    【解决方案1】:

    我对您的代码进行了一些编辑。您需要在布局 XML 文件中创建一个 ListView 元素,然后在 Java 文件中使用 findViewById 找到它:

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class List extends Activity {
    
        String[] elements = { … };  // (omitted for better legibility)
    
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
    
            setContentView(R.layout.main); 
            ListView lv = (ListView)findViewById(R.id.ListView01);
            lv.setAdapter(new ArrayAdapter<String>(
                    this, android.R.layout.simple_list_item_1, 
                    elements));
        }
    
        public void onListItemClick(ListView parent, View v, int position,
                                     long id) {
            //if ("actinium".equals(elements[position]))
            //    {startActivity(Actinium.class);}
            //else if ("aluminum".equals(elements[position]))
            //    {startActivity(Aluminum.class);}
        }
    }
    

    【讨论】:

    • 好的。这样我的列表就会出现,但我如何选择开始新活动?
    • 确定 在这种情况下,取消注释 if ... 和 else if 块。在 If 或 else if 块内 { Intent i = new Intent(List.this,Actinium.class) startActivity(i); Actinium 类应定义为 shud extend Activity .. 此外,将在 Android Manifest .xml 中声明一个活动,以便 Ancroid System 可以重新调整它并根据我们的需要启动它
    • 好吧,我已经全部设置好了,看起来它应该可以工作了,但是由于某种原因,当我按下选择时我没有得到任何结果。我什至没有在 logcat 中得到任何东西。就像什么都没发生一样。
    • 嗨 Joshua.. 请将您尝试实现此功能的代码文件发送给我。我会解决错误并让您知道。我的地址是success_anil@yahoo.co.in
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多