如何访问从视图中寻呼机的意见 [英] How to access views from view pager

查看:106
本文介绍了如何访问从视图中寻呼机的意见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的视图寻呼机在我activity.I创建的视图7页。现在我想访问我的活动内页视图。我得到的数据为空白。
在活动

I am using view pager in my activity.I created views for 7 pages. Now i want to access page view inside my activity. I am getting data as blank. In Activity

public class ActivitySingleEntry extends Activity implements OnClickListener {

    private ViewPager mPager;
    private FixedTabsView mFixedTabs;

    private ExamplePagerAdapter mPagerAdapter;
    private TabsAdapter mFixedTabsAdapter;
    private EditText edtFieldName;

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

        setContentView(R.layout.activity_fixed_tabs);
        initViewPager(7, 0xFFFFFFFF, 0xFF000000);
        mFixedTabs = (FixedTabsView) findViewById(R.id.fixed_tabs);
        mFixedTabsAdapter = new FixedTabsAdapter(this);
        mFixedTabs.setAdapter(mFixedTabsAdapter);
        mFixedTabs.setViewPager(mPager);

    }

    private void initViewPager(int pageCount, int backgroundColor, int textColor) {
        mPager = (ViewPager) findViewById(R.id.pager);
        mPagerAdapter = new ExamplePagerAdapter(this, pageCount,
                backgroundColor, textColor);
        mPager.setAdapter(mPagerAdapter);
        mPager.setCurrentItem(1);
        mPager.setPageMargin(5);
    }

    @Override
    public void onClick(View v) {

//      LinearLayout lin=(LinearLayout) mPager.getChildAt(mPager.getCurrentItem());
//      edtFieldName=(EditText) lin.findViewById(R.id.edtFieldName);
//      Log.d("test", "From get child:"+edtFieldName.getText().toString()+":");

        Log.d("test", "Current Page:"+mPager.getCurrentItem());

        LinearLayout linearLayout=(LinearLayout) mPager.findViewWithTag("lin"+mPager.getCurrentItem());
        edtFieldName=(EditText) linearLayout.findViewById(R.id.edtFieldName);

        edtFieldName=(EditText) findViewById(R.id.edtFieldName);
        if (edtFieldName==null) {
            ShowToast.makeToast(getApplicationContext(), "Edt null");
        }else
        ShowToast.makeToast(getApplicationContext(),
                "Data saved " + edtFieldName.getText().toString() + ":"
                        + mPager.getCurrentItem());
    }
}

我PageAdaper

My PageAdaper

public class ExamplePagerAdapter extends PagerAdapter {

    protected transient Activity mContext;

    private int mLength = 0;
    private int mBackgroundColor = 0xFFFFFFFF;
    private int mTextColor = 0xFF000000;

    private String[] mData = { "Temperature", "Sugar", "BP", "Field 4",
            "Field 5", "Field 6", "Field 7" };

    public ExamplePagerAdapter(Activity context, int length,
            int backgroundColor, int textColor) {

        mContext = context;
        mLength = length;
        mBackgroundColor = backgroundColor;
        mTextColor = textColor;

    }

    @Override
    public int getCount() {
        return mLength;
    }

    @Override
    public Object instantiateItem(View container, int position) {

        LinearLayout linearLayout = (LinearLayout) View.inflate(mContext,
                R.layout.activity_single_entry, null);

        TextView txtFieldName = (TextView) linearLayout
                .findViewById(R.id.txtFieldName);
        EditText edtFieldName = (EditText) linearLayout
                .findViewById(R.id.edtFieldName);

        String filedName = mData[position];
        txtFieldName.setText(filedName);
        edtFieldName.setHint("Please enter " + filedName);
        edtFieldName.setInputType(InputType.TYPE_CLASS_TEXT);

        if (filedName.equals("Temperature")) {
            edtFieldName.setInputType(InputType.TYPE_CLASS_NUMBER);
        } else if (filedName.equals("Sugar")) {
            edtFieldName.setInputType(InputType.TYPE_CLASS_NUMBER);
        } else if (filedName.equals("BP")) {
            edtFieldName.setInputType(InputType.TYPE_CLASS_NUMBER);
        }


        edtFieldName.setTag("edt");

        ((ViewPager) container).addView(linearLayout, 0);
        linearLayout.setTag("lin"+position);

        Log.d("test", "Adapter creating item:"+position );
        return linearLayout;
    }



    @Override
    public void destroyItem(View container, int position, Object view) {
        ((ViewPager) container).removeView((View) view);
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((View) object);
    }

    @Override
    public void finishUpdate(View container) {
    }

    @Override
    public void restoreState(Parcelable state, ClassLoader loader) {
    }

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

    @Override
    public void startUpdate(View container) {
    }

}

在R.layout.activity_single_entry XML我已经EDITTEXT和的onclick按钮。

In R.layout.activity_single_entry xml i have edittext and button with onclick.

与myXML
    
    

MYXml

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/txtFieldName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <EditText
            android:id="@+id/edtFieldName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1"
            android:hint="Please enter field value" />
    </LinearLayout>

    <Button
        android:id="@+id/btnSave"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Save" 
        android:layout_margin="20dp"
        android:onClick="onClick"
        />

</LinearLayout>

如果我使用内部pageadapter

If i used inside pageadapter

@Override
    public int getItemPosition(Object object) {
        // TODO Auto-generated method stub
        return POSITION_NONE;
    }

按钮的OnClick的我想从编辑文本访问数据。

OnClick of button i want to access data from edit text.

我能够得到第一page.Not价值为人人。

I able to get value for first page.Not for all.

推荐答案

firstm你setTag():

firstm you setTag():

linearLayout.setTag("lin"+position);

在这里的位置是上述&lt; 0..numPages-1>

where position is in <0..numPages-1>

但阅读:

LinearLayout linearLayout=(LinearLayout) mPager.findViewWithTag("lin"+mPager.getCurrentItem()+1);

是findViewWithTag最后一页返回null到处还是只?

is findViewWithTag returning null everywhere or only on the last page?

这篇关于如何访问从视图中寻呼机的意见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆