마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

BaseActivity에서 Fragment 값전달하면서 메소드 실행하려면?

0 추천

 

BaseActivity에서 Fragment 값전달하면서 메소드 실행하려면 어떻게 해야할까요?

특성상 화면전환이 없는 부분이 인데.. 나름대로 구글링을 했지만 답이 안나와서 여쭈어봅니다.

updateDisplay()메소드를 실행시켜 달력에 사용자가 입력한 값을 Fragment로 넘기고 Fragment에 있는 메소드를 실행하려고 하는데

 

자꾸 NullpointerException오류가 뜹니다. 어떻게 해야 할까요?

 

 

 extends BaseActivity {

private FragmentAdapter mAdapter;

   private ViewPager mPager;

   private TabPageIndicator mIndicator;

    private static final String[] CONTENT = new String[] {  "1","2","3","4" };

    private Button backBtn,wallBtn;

    DatePickerDialog datePickerDialog;

OnDateSetListener onDateSetListener;

private DatePicker datePicker;

    

private int mYear;

private int mDay;

private int mMonth;

@Override

public void onCreate(Bundle savedInstanceState) {

requestWindowFeature(Window.FEATURE_NO_TITLE);

    super.onCreate(savedInstanceState);

setContentView(R.layout.activity_setting_pouch);

}

 

풋사과1 (200 포인트) 님이 2013년 4월 23일 질문
//Instantiating the adapter
Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);
       
       

    wallBtn= (Button)findViewById(R.id.wallBtn);
    wallBtn.setVisibility(View.INVISIBLE);
    wallBtn.setOnClickListener(new OnClickListener() {



@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(0);
updateDisplay();

}
});
   

mAdapter = new FragmentAdapter(getSupportFragmentManager());


    //instantiate the Views
    mPager = (ViewPager)findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);
    
    mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
    mIndicator.setViewPager(mPager);
    final float density = getResources().getDisplayMetrics().density;
   
    mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            //Toast.makeText(SettingPouchActivity.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });
  
private void updateDisplay()
{
    String str = (new StringBuilder().append(mYear).append("YEAR").append(mMonth+1).append("Month").append(mDay).append("DAY")).toString();
    Log.d("Log", str);
TwoFragmentActivity st = new TwoFragmentActivity();
//이다음을 모르겠습니다.;;

    
}

protected Dialog onCreateDialog(int id)
{
    return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
}

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener()
                                       {
  public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
                                                                    {
                                                                        mYear = year;
                                                                        mMonth = monthOfYear;
                                                                        mDay = dayOfMonth;
                                                                        
                                                                        updateDisplay();
                                                                    }
                                                              };



 class FragmentAdapter extends FragmentPagerAdapter {

public FragmentAdapter(FragmentManager fm) {
        super(fm);
    }
  @Override
       public Fragment getItem(int position) {
    if (position == 0)
{
    wallBtn.setVisibility(View.INVISIBLE);
   
            return new FragmentViewerOne();
        }
else if (position == 1)
{

wallBtn.setVisibility(View.VISIBLE);
return new FragmentViewerTwo();

        }
else if (position == 2)
{
wallBtn.setVisibility(View.VISIBLE);
   
            return new FragmentViewerThree();
        }
else if (position == 3)
{
wallBtn.setVisibility(View.VISIBLE);
   
            return new FragmentViewerFour();
        }


           return new FragmentViewerFive();
       }

       @Override
       public CharSequence getPageTitle(int position) {
           return CONTENT[position % CONTENT.length];
       }

       @Override
       public int getCount() {
           return CONTENT.length;
       }
}
class TitleFragmentAdapter extends FragmentAdapter {
    public TitleFragmentAdapter(FragmentManager fm) {
        super(fm);
        
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return CONTENT[position % CONTENT.length];
    }
}

public class TwoFragmentActivity extends Fragment  {
public void test(){

TextView.setText(달력 문구가 들오게 하려면)?
     

}

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...