[android]数组和得到他们的数据到一个变量和更改项目在数组中的项的子项

标签: Java Android
发布时间: 2017/3/19 18:14:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我创造了这个在 activity :

protected void onClickSunSea(View v) {
    persons = (EditText) findViewById(R.id.txtPerson);
    days = (EditText) findViewById(R.id.txtDays);
    String p = persons.getText().toString();
    String d = days.getText().toString();
    String [] array = getResources().getStringArray(R.array.sunsea);
    Intent myintent = new Intent(MainActivity.this, MainActivity.class);
    myintent.putExtra("PERSONS", p);
    myintent.putExtra("DAYS", d);
    myintent.putExtra("PLACES",array);
    startActivity(myintent);
}

将发送到这 activity :

String person = getIntent().getStringExtra("PERSONS");
    String day = getIntent().getStringExtra("DAYS");

    TextView txtPerson = (TextView) findViewById(R.id.txtViewPersons);
    txtPerson.setText("Persons travelling: " + person);
    TextView txtDay = (TextView) findViewById(R.id.txtViewDays);
    txtDay.setText("Days of traveling: " + day);

    String[] arrayCityBreak = getIntent().getStringArrayExtra("PLACES");
    ArrayAdapter<String> adapterCityBreak = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayCityBreak);
    ListView myview = (ListView) findViewById(R.id.lstView);
    myview.setAdapter(adapterCityBreak);

Strings.xml 取得这些数组︰

<resources>
<string name="app_name">Assignment</string>

<array name="citybreak">
    <item>Barcelona, Spain</item>
    <item>Berlin, Germany</item>
    <item>Copenhagen, Denmark</item>
    <item>Gothenburg, Sweden</item>
    <item>Milan, Italy</item>
</array>

<array name="sunsea">
    <item>Alicante, Spain</item>
    <item>Antalya, Turkey</item>
    <item>Athens, Greece</item>
    <item>Florida, USA</item>
    <item>Gran Canaria, Spain</item>
</array>

<array name="skisnow">
    <item>Kiruna, Sweden</item>
    <item>Trondheim, Norway</item>
    <item>Salzburg, Austria</item>
    <item>Kittila, Finland</item>
    <item>Ivalo, Finland</item>
</array>

我想要插入子项与一个价格里面,例如︰西班牙巴塞罗那200,然后得到"200"中变量的值,并改变它,然后把它放回要把它写出来与新值 + 一些文本在它之前的数组。像这样︰巴塞罗那,西班牙2 人的费用是 400 谁能帮我的吗? 希望你明白我的问题。

解决方法 1:

首先,你应该使用某种类型的地图对于此数据,所以你就可以有 pair 地方城市名称将是关键和价格将一个值。坏消息是你不能保存在地图 resources 。但你可以"观摩",例如使用"|"作为分隔符︰

<array name="citybreak">
 <item>Barcelona, Spain|200</item>
 <item>Berlin, Germany|300</item>
 <item>Copenhagen, Denmark|250</item>
 <item>Gothenburg, Sweden|500</item>
 <item>Milan, Italy|700</item>
</array>

然后你可以分析这些字符串和从它创建一幅地图。作为一个例子检查这个答案。当你会有一张地图时,您可以通过它对你的第二 activity 修改那里的价格,然后将其发送回与新价格。

官方微信
官方QQ群
31647020