您好我使用教程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提前:)