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

时间:2013-02-15 08:16:26

标签: android

[我的项目图]

ACT = 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);
   }

ACT3

      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
  • 时,使用switch case在另一个活动中显示数据
  • 然后显示数据android Lerner或android developers.then点击android learner
  • 然后显示android lerner1或android learner2
  • 当选择android开发者然后显示android lerner1或android learner2。

这里只适用于android不能用于iPhone或窗口。

1 个答案:

答案 0 :(得分:0)

这个怎么样

用法: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;
    }
}
}