0

[我的项目图]

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

第三幕

      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
  • and when select android developer then display android lerner1 or android learner2.

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

4

1 回答 1

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;
    }
}
}
于 2013-02-15T10:46:00.297 回答