2015-12-18 4 views
0

я пытаюсь отправить данные из деятельности фрагментировать здесь код вида деятельности:отправить данные из активности в свой фрагмент?

Bundle args=new Bundle(); 
    args.putString("username", username); 
    ViewEmpAttend fragobj=new ViewEmpAttend(); 
    fragobj.setArguments(args); 

вот фрагмент кода:

username=this.getArguments().getString("username"); 

но этот код дает мне сказала об ошибке «нуль object reference "в методе onCreateView в (класс фрагментов).

пожалуйста, помогите :)

+2

вы объявить фрагмент в макете тоже? – Blackbelt

+0

, пожалуйста, напишите полный код ... –

+0

Как вы используете fragobj? Это что-то вроде getSupportFragmentManager(). BeginTransaction(). Replace (R.id.container, fragobj) .commit(); или нет? – comrade

ответ

0

Попытки получить аргументы из OnCreate фрагмента

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String username = this.getArguments().getString("username"); 

} 
0

В деятельности определяет один метод.

public class MainActivity extends AppCompatActivity { 
    String name; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //your code 
} 
//define this method 
    public String getName(){ 
     this.name = username; 
     }} 

В фрагменте использовать следующий код.

String userName = ((activityName) getActivity()).getName();//you will get name here. 
0

Для чего-то простого, я просто создам метод конструктора во фрагменте для передачи в строке.

, например

public class MyFragment extends Fragment{ 

    private String myString; 

    public MyFragment(){ 
    // Recommended Empty Constructor 
    } 

    public MyFragment (String yourString){ 
     this.myString = yourString; 

    } 
} 

На своем классе активность, вы можете передать строку прямой в конструкторе фрагмент

public MyClass extends Activity{ 

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

     openFragment(); 
    } 

    public void openFragment(){ 

     MyFragment fragment = new Fragment("yourString"); 
     // Here begin the fragment transaction 
    } 
} 
Смежные вопросы