2015-10-30 97 views
-3

我堅持一個fragment.below內是我的片段代碼onCreateview的片段設置值全局變量返回空值?

public class Tab1 extends Fragment { 
    EditText address,contactNumber,dob; 
    String adds; 

    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

     View v =inflater.inflate(R.layout.tab_1,container,false); 

     contactNumber= (EditText)v.findViewById(R.id.editTextcontact); 
     address= (EditText)v.findViewById(R.id.editText2); 
     dob= (EditText) v.findViewById(R.id.editText3); 

     contactNumber.setHint("Your ContactNo Plz"); 
     address.setHint("Your address Plz"); 
     dob.setHint("Your Data Of Birth"); 
//receive data from main activity 
     TabedActivity activity = (TabedActivity) getActivity(); 
     String myDataFromActivity = activity.getMyData(); 
// 
     adds=address.getText().toString(); 

     return v; 
    } 

    public String getData(){ 
     return adds; 
    } 
} 

我想是時候該片段從上述主要活動堪稱EditText上的文字應該傳遞給加variable.i檢查它像但是它顯示爲空值。我可以設置這個值。?請幫助

+0

你在哪裏/何時在你的Activity中調用getData()? –

+0

@UdiIdan在我的主要活動onOptionItemSelected我稱這個函數是否正確? public void ShoValue(){ Tab1 tab = new Tab1(); addre = tab.getData()。toString(); Toast.makeText(this,「you select done」+ addre,Toast.LENGTH_SHORT).show(); } –

+0

用戶想輸入文本,對不對?所以當你做Tab1 tab = new Tab1(); addre = tab.getData()。的toString();?另外,你在我的回答 –

回答

0

您需要返回address.getText()。toString()並檢查null;

樣品:

public String getData(){ 
     if(address != null && address.getText() != null) 
     return address.getText().toString(); 
     return null; // block NPE 
    } 
0

在onCreateView你這樣做:

address= (EditText)v.findViewById(R.id.editText2); 

,並在同一事件中,你那麼做:

adds=address.getText().toString(); 

但offcourse此時用戶沒」 t設定它的價值。

也就是說,檢查您的活動中何時試圖獲得此值也很重要。

0

您應該在創建片段時將所需的數據傳遞給父代活動的片段。示例代碼可以像下面

Bundle args = new Bundle(); 
    args.putString("address", address); 
    fragment.setArguments(args); 

現在在你的片段中獲得的價值回來就好

getArguments().getString("address"); 

希望它能幫助。

+0

#Amit Kumar請看看我的[這個問題](http://stackoverflow.com/questions/33459676/on-option-item-selected-want-to-execute-the-fragment-method) –