Android 如何将数据从适配器传递到片段?

Android 如何将数据从适配器传递到片段?,android,android-fragments,android-adapter,Android,Android Fragments,Android Adapter,如何在适配器和片段之间传递数据 我的适配器: finalHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { finalHolder.spinner.setSelection(p

如何在
适配器
片段
之间传递数据

我的适配器:

finalHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        finalHolder.spinner.setSelection(position);
        selState = finalHolder.spinner.getSelectedItem().toString();
        System.out.println(selState);
        Toast.makeText(getContext(),
                "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();

        Fragment fragment = new Fragment();
        Bundle bundle = new Bundle();
        bundle.putString("key", selState);
        Log.i("BUNDLE", bundle.toString());
        fragment.setArguments(bundle);
    }
});

在开发android之前,请阅读更多关于Java和面向对象的内容

但您可以使用接口将数据从适配器传递到片段,通常您可以阅读更多关于

在您的情况下,您可以实现如下接口:

Public Interface YourInterfaceName{
    void onItemSelected(String key, String Value);
}
在片段中,您必须实现intrface:

public class YourFragment extends Fragment implements YourInterface
{
    YourAdapter.setOnItemSelected(this);
}
和finlay在适配器中执行以下操作:

public class Adapter
{
    public void setOnItemSelected(YourInterface yourIntrface)
    {
         this.yourIntrface = yourIntrface;
    }
    .......
    finalHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
.....
     //instead of creating instance of fragment do this:
     yourInterface.onItemSelected(yourKey, value);     
}
公共类适配器
{
已选择公共无效设置(YourInterface yourIntrface)
{
this.yourIntrface=yourIntrface;
}
.......
finalHolder.spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
.....
//不要创建片段的实例,请执行以下操作:
yourInterface.onItemSelected(您的键,值);
}

使用监听器。当您创建适配器时,它可以传递监听器的引用,并使用该监听器将数据传递回片段
public class Adapter
{
    public void setOnItemSelected(YourInterface yourIntrface)
    {
         this.yourIntrface = yourIntrface;
    }
    .......
    finalHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
.....
     //instead of creating instance of fragment do this:
     yourInterface.onItemSelected(yourKey, value);     
}