-1

我想构建一个 Android 应用程序并为此使用 Eclipse。这是我的第一个应用程序,我在http://developer.android.com上阅读了如何创建应用程序等等。

我的应用程序:

我使用三个活动。

第一个活动是主要的。在第二个活动中,我可以输入一个字符串并拥有一个按钮。在我的第三个活动中,我有一个 ListView 但它是空的。如果我单击按钮的第二个 Activity,我希望字符串将发送到第三个 Activity 上的 ListView。

另一个问题是如何在 Android 应用程序中保存信息。我可以使用数据库还是正确的方法。我想保存列表视图,如果我从主活动中打开活动,我想查看带有信息的列表视图。

我的代码:

第一活动:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void createPlan(View view)
    {
        Intent intent = new Intent(this,CreateActivity.class);

        startActivity(intent);

    }
}

第二个活动:

public class CreateActivity extends Activity {

    public final static String ListViewMessage = "de.linde.KSDILLPlan";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_create);

        FillSpinnerViews(); 
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.test, menu);
        return true;
    }

    public void FillSpinnerViews()
    {
        Spinner spinner = (Spinner)findViewById(R.id.spinner2);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.daysArray, android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinner.setAdapter(adapter);


        Spinner Spinner2 = (Spinner)findViewById(R.id.spinner1);

        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.zeitArray, android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        Spinner2.setAdapter(adapter2); 

    }

    public void createPlan(View view)
    {
        String PlanName;
        //String StundenZahl;
        //String Wochentag;
        //Boolean doppelstunde; 

        Intent intent = new Intent(this,OpenActivity.class);

        EditText planName = (EditText)findViewById(R.id.editText1);

        PlanName = planName.getText().toString();

        intent.putExtra(ListViewMessage, PlanName); 

        startActivity(intent);

    }

第三个活动:ListView

public class OpenActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_open);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_open2, menu);
        return true;
    }
}
4

2 回答 2

1

您可以使用以下意图将数据从一个活动传递到另一个活动,

在 onclick 按钮的第二个活动中,

Intent in=new Intent(currentclass.this,nextactivity.class);
in.putExtras("value_name",value);
startActivity(in);
finish();

在第三个活动中,

If(getIntent().getExtras!=null)
{
   String msg=getIntent().getStringExtra("value_name"); // value_name is the attribute given in second activity
}

您可以将数据存储在数据库或 sharedpreference 中。这取决于您的需求。如果要将批量数据存储为大量人员详细信息,可以使用 SQLite 存储在数据库中,或者如果要存储登录详细信息等小数据,可以存储在 SharedPreferences 中。

请参阅 Database 和 SharedPreferences 的链接

SQLite

共享首选项

于 2012-10-09T12:52:03.893 回答
1

使用以下代码从意图的包中获取字符串。

public class OpenActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_open);
        String text = getIntent().getStringExtra( CreateActivity.ListViewMessage );
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_open2, menu);
        return true;
    }
}

有关持久存储问题,请参阅此链接

于 2012-10-09T12:43:14.567 回答