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

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をクリックしたときに大文字と小文字を切り替えて別のアクティビティにデータを表示する
  • 次に、データ android Lerner または android developers を表示します。次に、android 学習者をクリックします。
  • 次に、android lerner1 または android learner2 を表示します
  • Android 開発者を選択すると、Android lerner1 または Android Learner2 が表示されます。

ここでは、android でのみ機能し、iphone やウィンドウでは機能しません。

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 に答える