Android在循环中启动活动

时间:2015-09-02 09:09:27

标签: android sqlite for-loop android-activity android-studio

我有一个包含3条记录的SQLite数据库,例如:
1 - Name1 - Do wash
2 - Name2 - Do this
3 - Name3 - Do that

现在我想在用户按下按钮时开始一个接一个的活动(对于每个记录)。活动始终与其他内容相同 那么最好的方法是什么?

我的想法如下:
- 制作for循环并使用StartActivityForResult(...)
- 使用意图通过所有活动传递数据 - 创建临时表并读取每个活动中的数据
- 只更改布局的内容,但不知道我该怎么做

那么对此有何建议?

2 个答案:

答案 0 :(得分:0)

使用此活动会对RAM产生影响。改为使用片段。

正如您所引用的那样,回答您的原始问题,请使用onActivityResult(),并在此关注您的问题: - 只更改布局的内容,但不知道我该怎么做

利用来自intent的传递数据并相应处理。

答案 1 :(得分:0)

我认为要在多个内容上显示相同类型的视图,您应该使用带有viewpager的片段。 我只是为viewpager和fragment建议代码 -

内容布局(pages.xml) -

focus: true

主要活动内容(activity_main.xml) -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/rel" >

    <TextView
        android:id="@+id/pageContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

</RelativeLayout>

用于在viewpager上设置的寻呼机适配器(ViewPagerAdapter.java) -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <RelativeLayout
        android:id="@+id/relativeTextview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/header"
        android:padding="5dp" >

        <android.support.v4.view.ViewPager
            android:id="@+id/reviewpager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </RelativeLayout>

</RelativeLayout> 

现在处于主要活动((MainActivity.java) -

public class ViewPagerAdapter extends PagerAdapter {
    int size;
    Activity act;
    View layout;
    TextView pagecontent;
    Button click;

    public ViewPagerAdapter(MainActivity mainActivity, int noofsize) {
        // TODO Auto-generated constructor stub
        size = noofsize;
        act = mainActivity;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return size;
    }

    @Override
    public Object instantiateItem(View container, int position) {
        // TODO Auto-generated method stub
        LayoutInflater inflater = (LayoutInflater) act
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layout = inflater.inflate(R.layout.pages, null);
        pagecontent = (TextView) layout.findViewById(R.id.pageContent);
        int pagenumberTxt=position + 1;
        pagecontent.setText("Now your in Page No  " +pagenumberTxt );
        ((ViewPager) container).addView(layout, 0);
        return layout;
    }

    @Override
    public void destroyItem(View arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == ((View) arg1);
    }

    @Override
    public Parcelable saveState() {
        return null;
    }

    // }

}

并且不要忘记在manufest.xml中提及活动。 在pages.xml中,您可以在单击此按钮时添加按钮,您可以使用侦听器更改下一个和上一个(mPager.setCurrentItem(position))的视图。