以编程方式在xml文件中向Strings Array添加项目

时间:2013-11-26 00:20:20

标签: java android listview

ActivityA 我有ListView onItemClickListner 所以当我点击某个项目时,我需要保存该项目要在 ActivityB ListView中查看标题,我成功获取所点击的项目标题我需要的是如何将其发送到 ActivityB 或在xml文件中的 String-Array 中添加 ActivityB

两个活动中的ListView代码相同

ListView代码:


class SingleRow
{
String title;
String description;

SingleRow(String title, String description)
{
    this.title = title;
    this.description = description;
}
}
class Adapter extends BaseAdapter {


ArrayList<SingleRow> list;
Context context;

Adapter(Context c)
{
    context = c;
    list = new ArrayList<SingleRow>();
    Resources res = c.getResources();
    String[] titles = res.getStringArray(R.array.lwastitles);
    String[] descriptions = res.getStringArray(R.array.laws);

    for(int i=0;i<9;i++)
    {
        list.add(new SingleRow(titles[i],descriptions[i]));
    }
}
@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int i) {
    return list.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View row = inflater.inflate(R.layout.singlerow,viewGroup,false);
    TextView title = (TextView) row.findViewById(R.id.textView211);
    TextView description = (TextView) row.findViewById(R.id.textView112);
    title.setText(list.get(i).title);
    description.setText(list.get(i).description);
    return row;
}


}

OnItemClickListner 代码:

public class Examples extends Activity {


ListView list;
@Override

protected void onCreate(Bundle savedInstanceState) {



    super.onCreate(savedInstanceState);
     setContentView(R.layout.examplesandlaws);

        list = (ListView) findViewById(R.id.listView);
        list.setAdapter(new Adapter(this));

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

        }
    });

}
}

1 个答案:

答案 0 :(得分:0)

您无法修改Android应用程序中任何.xml文件中的内容。您可以通过向用于启动新活动的意图添加额外内容来将数据发送到新活动。

public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    String title = ((SingleRow) adapterView.getItemAtPosition(i)).title;
    Intent intent = new Intent(getContext(), ActivityB.class);
    intent.putExtra(TITLE, title);
    startActivity(intent);
}

在上文中,TITLE是一个常量String密钥,ActivityAActivityB都可以访问。它的值是任意的,因为它只是在运行时用作键。

编辑:如果您想存储来自ActivityA的数据,以便稍后ActivityB可以显示它,您将需要使用Android的持久数据机制之一。这些在指南主题Storage Options中有所描述。最简单的可能是在共享首选项中存储Set<String>。 (不幸的是,共享首选项没有存储字符串数组的方法。如果需要保留字符串的顺序,则需要使用其他机制之一,否则需要做一些额外的工作来使用共享首选项。例如,您可以将字符串数组编码为JSONArray并将其存储为字符串。)