繁体   English   中英

如何使用嵌套开关案例显示数据?

[英]how display data using nested switch case?

[我的项目图]

动作= 1

    String[] values = new String[] { "Android", "iPhone", "WindowsMobile"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
     android.R.layout.simple_list_item_1, android.R.id.text1, values);
      lisdis.setAdapter(adapter); 
      lisdis.setOnItemClickListener(this);

}
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id)
{

    Intent mIntent = new Intent(display_publishermagazine.this, display_publicationmagazine.class);
        mIntent.putExtra("position", position+1);
        startActivity(mIntent);

行动= 2

    Intent mIntent = getIntent();
    int intValue = mIntent.getIntExtra("position",0);

   switch (intValue)
    {
        case 1:values = new String[] { "Android For Beginer","Android Devloper" };break;
        case 2:values = new String[] { "I-phone for beginer","I-phone for devloper" };break;
        case 3:values = new String[] { "windows for beginer","windows for devloper" };break;
    }


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

lisdis.setAdapter(adapter); 
    lisdis.setOnItemClickListener(this);        
}

@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id)
{
    Intent myIntent = new Intent(display_publishermagazine.this, display_publicationmagazine.class);


    myIntent.putExtra("position", position+1);
    startActivity(myIntent);
   }

行为3

      Intent myIntent = getIntent(); 
      int intValue = myIntent.getIntExtra("position", 0);

    switch (intValue)
    {
        case 1:values = new String[] { "Android for lerner1","android for learner2" };break;
        case 2:values = new String[] { "Android  for devloper1","android for devloper2" };break;
    }

/*values = new String[] { "iphone for lerner1","iphone for learner2" }      
values = new String[] { "iphone for devloper1","iphone for devloper2} */
}

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

             android.R.layout.simple_list_item_1, android.R.id.text1, values);

        g1.setAdapter(adapter); 
}

我需要

  • 当用户单击android时,使用切换案例在另一个活动中显示数据
  • 然后显示数据android Lerner或android开发人员。然后单击android学习器
  • 然后显示android lerner1或android Learner2
  • 然后选择android开发人员,然后显示android lerner1或android Learner2。

在这里,它仅适用于android,不适用于iphone或window。

这个怎么样

用法: TutorialUtils.getMenu(); TutorialUtils.getMenu(new int[] { 0 })TutorialUtils.getMenu(new int[] { 2, 1 })或在您的情况下进行一些修改后的TutorialUtils.getMenu(getIntent().getExtras().getIntArray("positionsHistory"))

TutorialUtils类,自己处理异常。

import java.util.ArrayList;
import java.util.List;

public class TutorialUtils {
private static CompositeTutorialNode nodes = new CompositeTutorialNode(
        "root");
static {
    nodes = new CompositeTutorialNode("root")
            .add(new CompositeTutorialNode("Android").add(
                    new CompositeTutorialNode("Android For Developers").add(
                            new TextTutorialNode("Android for Developer1"))
                            .add(new TextTutorialNode(
                                    "Android for Developer2"))).add(
                    new CompositeTutorialNode("Android For Learners").add(
                            new TextTutorialNode("Android for Learner1"))
                            .add(new TextTutorialNode(
                                    "Android for Learner2"))))
            .add(new CompositeTutorialNode("iPhone Sucks !!")
                    .add(new CompositeTutorialNode("iPhone Sucks For Developers")
                            .add(new TextTutorialNode(
                                    "iPhone Sucks for Developer1")).add(
                                    new TextTutorialNode(
                                            "iPhone Sucks for Developer2")))
                    .add(new CompositeTutorialNode("iPhone For Learners")
                            .add(new TextTutorialNode("iPhone Sucks for Learner1"))
                            .add(new TextTutorialNode("iPhone Sucks for Learner2"))))
            .add(new CompositeTutorialNode("Windows").add(
                    new CompositeTutorialNode("Windows For Developers").add(
                            new TextTutorialNode("Windows for Developer1"))
                            .add(new TextTutorialNode(
                                    "Windows for Developer2"))).add(
                    new CompositeTutorialNode("Windows For Learners").add(
                            new TextTutorialNode("Windows for Learner1"))
                            .add(new TextTutorialNode(
                                    "Windows for Learner2"))));

}

public static String[] getMenu() {
    TutorialNode tmpNode = nodes;
    return prepareNames(tmpNode);
}

private static String[] prepareNames(TutorialNode node) {
    List<String> names = new ArrayList<String>();
    if (node instanceof CompositeTutorialNode) {
        List<TutorialNode> childs = ((CompositeTutorialNode) node).get();
        for (TutorialNode n : childs) {
            names.add(n.getName());
        }
    }
    return names.toArray(new String[] {});
}

public static String[] getMenu(int[] position) {
    TutorialNode tmpNode = nodes;
    for (int i : position) {
        if (tmpNode instanceof CompositeTutorialNode) {
            tmpNode = ((CompositeTutorialNode) tmpNode).get(i);
        }
    }
    return prepareNames(tmpNode);
}

interface TutorialNode {

    public String getName();
}

public static class CompositeTutorialNode implements TutorialNode {
    private List<TutorialNode> childs = new ArrayList<TutorialNode>();
    String name;

    public CompositeTutorialNode(String name) {
        this.name = name;
    }

    public CompositeTutorialNode add(TutorialNode node) {
        childs.add(node);
        return this;
    }

    public TutorialNode get(int index) {
        return childs.get(index);
    }

    public List<TutorialNode> get() {
        return childs;
    }

    @Override
    public String getName() {
        return name;
    }
}

public static class TextTutorialNode implements TutorialNode {
    String name;

    public TextTutorialNode(String name) {
        this.name = name;
    }

    @Override
    public String getName() {
        return name;
    }
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM