如何在android开发中将数据从一个片段传输到另一个片段?

时间:2014-06-10 14:55:06

标签: java android xml android-fragments native

您好我使用教程https://www.youtube.com/watch?v=yTaIQ0LMLy0中的库ViewPagerIndicator编写程序。

本教程的完整源代码链接位于http://en.textsave.org/lhJ

在本教程中,他们使用ViewPager制作了3个片段。一切正常但我想将数据从fragment_one发送到fragment_two。   我在第一个片段布局中放置一个EditText和一个Button,在第二个片段中放置一个TextView。  我的愿望是当我在edittext中写一些内容时按下按钮,文本(我在edittext中编写)将出现在第二个片段中。   这里是FIRST FRAGMENT的编辑代码(在这里称为FirstActivity)

    public class FirstActivity extends Fragment {
SendMessage SM;
Button bn;
EditText msg;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.lin, null);

    msg=(EditText)v.findViewById(R.id.editText1);
    bn=(Button)v.findViewById(R.id.button1);
    bn.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {
            String message;
            message=msg.getText().toString();
            SM.sendData(message);
        }
    });


    return v;

}

interface SendMessage {
    public void sendData(String message);
}

public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        SM = (SendMessage) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException("WRONG");
    }
}

}

在MainActivity.java中我编辑代码像这样

public class MainActivity extends FragmentActivity implements SendMessage{

FragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
int Number = 0;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mAdapter = new FragmentAdapter(getSupportFragmentManager());

    mPager = (ViewPager)findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);

    mIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
    mIndicator.setViewPager(mPager);

}
****public void sendData(String message)
{ 
    Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();

}****


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

从上面的代码中我得到了MainActivity.java中的编辑文本数据。现在我想在第二个片段中发送这些数据。在sendData(MainActivity.java中的函数)函数中,如何访问第二个片段并设置Textview文本。   很抱歉很多解释,因为我找不到任何其他方式来解释我的问题。 Thakns提前:)

0 个答案:

没有答案