如何从一个片段传递微调值到另一个? [英] How to pass spinner value from one fragment to another?

查看:190
本文介绍了如何从一个片段传递微调值到另一个?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是新Android开发我的要求是需要从纺纱厂从一个片段传递价值
 到另一个来填充列表视图中tofragment该值:

这是我的fromfragment:

 最后弦乐神= sbu.getSelectedItem()的toString();
    btnupdate.setOnClickListener(新View.OnClickListener(){
        @覆盖
        公共无效的onClick(视图v){
    //
           青奥会添加=新的Add();
            捆绑ARGS =新包();
            args.putString(青奥会,神);
            yog.setArguments(参数);
            。getFragmentManager()调用BeginTransaction()加(R.id.content_frame,YOG).commit()。
        }
    });
    返回视图。

这是我的tofragment:

 包com.example.first.servicefirst;进口android.app.Fragment;
进口android.app.FragmentTransaction;
进口android.os.Bundle;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.ArrayAdapter;
进口android.widget.Button;
 进口android.widget.ListView;
进口android.widget.Spinner;
进口android.widget.TextView;进口的java.util.ArrayList;
公共类添加扩展片段实现View.OnClickListener
{
公共静态的Add()
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
                         捆绑savedInstanceState){    查看rootView = inflater.inflate(R.layout.activity_btn_add,集装箱,FALSE);
    微调ldsource =(微调)rootView.findViewById(R.id.lead_source);
    ArrayAdapter<&CharSequence的GT;适配器= ArrayAdapter.createFromResource(
            。getActivity()getBaseContext(),R.array.dropbox1,R.layout.spinnerlayout);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    ldsource.setAdapter(适配器);
 // EDITTEXT的EditText =(EditText上)rootView.findViewById(R.id.title);    微调ldtype =(微调)rootView.findViewById(R.id.ldtype);
    ArrayAdapter<&CharSequence的GT;适配器1 = ArrayAdapter.createFromResource(
            。getActivity()getBaseContext(),R.array.dropbox2,R.layout.spinnerlayout);    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    ldtype.setAdapter(适配器1);
    微调ldstatus =(微调)rootView.findViewById(R.id.ldstatus);
    TextView的TXT =(TextView中)rootView.findViewById(R.id.spinnerTarget);
    ArrayAdapter<&CharSequence的GT;适配器2 = ArrayAdapter.createFromResource(
            。getActivity()getBaseContext(),R.array.dropbox3,R.layout.spinnerlayout);    adapter2.setDropDownViewResource(android.R.layout.simple_selectable_list_item);
    ldstatus.setAdapter(适配器2);
  //捆绑包= getArguments();
  //串好= bundle.getString(SBU);
    ArrayList的< LdNewsItem> listContact = GetlistContact();
    最终的ListView LV =(ListView控件)rootView.findViewById(R.id.ldrequirements);
    lv.setAdapter(新customListAdapterldrequirements(getActivity(),listContact));
// lv.setOnTouchListener(新View.OnTouchListener(){
  // @覆盖
    //公共布尔onTouch(视图V,MotionEvent事件){
    //返回false;
       //}        //通过触摸监听器设置用于处理内部滚动型触摸
    //});
     返回rootView;
}
私人的ArrayList< LdNewsItem> GetlistContact()
{    ArrayList的< LdNewsItem> contactlist =新的ArrayList<>();
    LdNewsItem接触=新LdNewsItem();
    字符串瑜珈= getArguments()的getString(SBU);    的for(int i = 1; I< = 10;我++)
    {
       //接触=新LdNewsItem();
        contact.setSbu(+瑜珈);
       // contact.setBu(+ STR);
       // contact.setSbuu(Yogeswaran+ STR);
        contact.setSc(销售+ I);
        contact.setSsc(术语+ I);
        contact.setReq(业务+ I);
        contactlist.add(接触);
    }    返回contactlist;
}
@覆盖
公共无效onActivityCreated(捆绑savedInstanceState){
    super.onActivityCreated(savedInstanceState);    片段片段= NULL;    按钮btnrequirements =(按钮)getActivity()findViewById(R.id.btnrequirements)。
    btnrequirements.setOnClickListener(本);}
@覆盖公共无效的onClick(视图v){
    开关(v.getId()){
        案例R.id.btnrequirements:
            片段newFragment =新NewRequirements();
            //考虑使用Java编码约定(上部第一个字符类的名字!)
            FragmentTransaction交易= getFragmentManager()调用BeginTransaction()。
            FragmentTransaction英尺= getActivity()
                    。.getFragmentManager()的BeginTransaction();            //替换无论是在fragment_container认为这个片段,
            //和事务添加到后退堆栈
            transaction.replace(R.id.content_frame,newFragment);
            transaction.addToBackStack(NULL);            //提交事务
            器transaction.commit();    }
}}


解决方案

最流行的方式。


  1. 您可以使用eventBus。

  2. 创建自定义监听器。

Am new to android development my requirement is need to pass value from spinners from one fragment to another and to populate that value in listview in tofragment:

This is my fromfragment:

  final String god=sbu.getSelectedItem().toString();
    btnupdate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
    //     
           Add yog=new Add();
            Bundle args=new Bundle();
            args.putString("yog",god);
            yog.setArguments(args);
            getFragmentManager().beginTransaction().add(R.id.content_frame,yog).commit();
        }
    });
    return view;

This is my tofragment:

package com.example.first.servicefirst;

import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
 import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;

import java.util.ArrayList;


public  class Add extends Fragment implements View.OnClickListener
{
public static Add()
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.activity_btn_add, container, false);
    Spinner ldsource=(Spinner)rootView.findViewById(R.id.lead_source);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            getActivity().getBaseContext(), R.array.dropbox1, R.layout.spinnerlayout);


    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    ldsource.setAdapter(adapter);
 //   EditText editText=(EditText)rootView.findViewById(R.id.title);

    Spinner ldtype=(Spinner)rootView.findViewById(R.id.ldtype);
    ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(
            getActivity().getBaseContext(), R.array.dropbox2,R.layout.spinnerlayout);

    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    ldtype.setAdapter(adapter1);
    Spinner ldstatus=(Spinner)rootView.findViewById(R.id.ldstatus);
    TextView txt=(TextView)rootView.findViewById(R.id.spinnerTarget);
    ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
            getActivity().getBaseContext(), R.array.dropbox3, R.layout.spinnerlayout);

    adapter2.setDropDownViewResource(android.R.layout.simple_selectable_list_item);
    ldstatus.setAdapter(adapter2);
  //  Bundle bundle=getArguments();
  //  String good=bundle.getString("sbu");
    ArrayList<LdNewsItem> listContact = GetlistContact();
    final   ListView lv = (ListView)rootView.findViewById(R.id.ldrequirements);
    lv.setAdapter(new customListAdapterldrequirements(getActivity(), listContact));
//    lv.setOnTouchListener(new View.OnTouchListener() {
  //      @Override
    //    public boolean onTouch(View v, MotionEvent event) {
    //        return false;
       // }

        // Setting on Touch Listener for handling the touch inside ScrollView


    //});
     return rootView;


}




private ArrayList<LdNewsItem> GetlistContact()
{

    ArrayList<LdNewsItem> contactlist = new ArrayList<>();
    LdNewsItem contact = new LdNewsItem();
    String yog=getArguments().getString("sbu");

    for(int i=1;i<=10;i++)
    {
       // contact = new LdNewsItem( );
        contact.setSbu(""+yog);
       // contact.setBu(""+str);
       // contact.setSbuu("Yogeswaran" + str);
        contact.setSc("Sales" + i);
        contact.setSsc("term" + i);
        contact.setReq("business"+i);
        contactlist.add(contact);
    }

    return contactlist;
}


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

    Fragment fragment=null;

    Button btnrequirements=(Button)getActivity().findViewById(R.id.btnrequirements);
    btnrequirements.setOnClickListener(this);

}
@Override

public void onClick(View v) {
    switch (v.getId()){
        case R.id.btnrequirements:
            Fragment newFragment = new NewRequirements();
            // consider using Java coding conventions (upper first char class names!!!)
            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            FragmentTransaction ft = getActivity()
                    .getFragmentManager().beginTransaction();

            // Replace whatever is in the fragment_container view with this fragment,
            // and add the transaction to the back stack
            transaction.replace(R.id.content_frame, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();

    }
}



}

解决方案

Most Popular ways.

  1. You can use eventBus.
  2. Create Custom Listener.

这篇关于如何从一个片段传递微调值到另一个?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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