0

我的应用程序有一个主要活动,它可以产生四个列表活动之一,目标是让用户一个接一个地从列表中选择项目,然后submit从主要活动将这些选择推送到数据库。

问题:我不确定如何在主要活动中返回和存储列表的结果。

我没有为其他活动使用列表视图,因为它不允许在同一屏幕上显示“完成”按钮。

到目前为止,这就是我所拥有的

主要的:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button1 = (Button) findViewById(R.id.listOneSub);
        button2 = (Button) findViewById(R.id.listTwoSub);
        button3 = (Button) findViewById(R.id.listThreeSub);
        button4 = (Button) findViewById(R.id.listFourSub);

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
    }


    public void onClick(View v) {
        if (v == button1) {
            startActivity(new Intent("net.learn2develop.SecondActivity"));
        } else if (v == button2) {
            startActivity(new Intent("net.learn2develop.ThirdActivity"));
        } else if (v == button3) {
            startActivity(new Intent("net.learn2develop.FourthActivity"));
        } else if (v == button4) {
            startActivity(new Intent("net.learn2develop.FifthActivity"));
        }
    }

列出活动(所有四个都是相似的,它们只是有不同的项目):

String [] lstOne;

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.secondactivity);
        ListView lstView = (ListView)findViewById(R.id.android_listOne);
        lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        //lstView.setTextFilterEnabled(true);

        lstOne = getResources().getStringArray(R.array.one);

        lstView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstOne));

        }




    public void onClick(View view){
        ListView lstView = (ListView)findViewById(R.id.android_listOne);

        String itemsSelected =  "Selected items: \n";
        for(int i=0; i<lstView.getCount(); i++){
            if(lstView.isItemChecked(i)){
                itemsSelected += lstView.getItemAtPosition(i) + "\n";
            }
        }
        Toast.makeText(this, itemsSelected, Toast.LENGTH_LONG).show();
        finish();
    }

列表是从strings.xml文件中生成的。我想更新按钮下的主视图,以在提交之前显示从每个列表中选择的内容。

截屏

4

1 回答 1

1

使用startActivityForResult代替startActivity并将onActivityResult在您的主服务器上调用。

我还建议将这 4 个类合并为 1 个并发送要显示的字符串数组的标识符。代码重复是非常糟糕的。

于 2013-04-14T20:07:47.967 回答