2015-01-21 20 views
0

我的片段中的視圖根本沒有響應,textview.setText(str)不起作用,當我嘗試點擊按鈕通過應用程序,它什麼都不做,但是當使用「view.performClick()」時,正在調用onClick函數。片段中的按鈕無法通過應用/視圖中的切片進行響應

public class FragmentOne extends Fragment implements OnClickListener{ 

private TextView tvA; 
private Button btnSync; 
public String levelscore; 

@Override 
public View onCreateView(LayoutInflater inflater, 
    ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_one, container, false); 

    levelscore = getArguments().getString("scoreKey"); 
    Toast.makeText(view.getContext(), levelscore, 1000).show(); //Outputs score 
    tvA = (TextView)view.findViewById(R.id.tvTotalScore); 
    Toast.makeText(view.getContext(), "test1", 1000).show(); //Outputs 'test1' 
    btnSync = (Button)view.findViewById(R.id.sync); 
    Toast.makeText(view.getContext(), btnSync.getText().toString() , 1000).show(); //Outputs 'SyncScore' 
    btnSync.setOnClickListener(this); 
    Toast.makeText(getActivity(), "BtnClickable: "+btnSync.isClickable(), 2500).show(); //Outputs 'BtnClickable: true' 
    btnSync.performClick(); //Calls the onClick function 
    tvA.setText("Test"); //Does nothing 

    if(levelscore != null){ 
     tvA.setText(levelscore); //Does nothing 
    }else{ 
     tvA.setText("Error!"); //Does nothing 
    } 


    //Inflate the layout for this fragment 



    return inflater.inflate(
      R.layout.fragment_one, container, false); 
    } 

的onclick FUNC:

@Override 
public void onClick(View v) { 
Toast.makeText(getActivity(), levelscore, 1000).show(); //Outputs score (via performClick) 
Log.d("SCORE", levelscore); //Shows the score in LogCat (via performClick) 
switch (v.getId()) { 
case R.id.sync: 
    Toast.makeText(getActivity(), levelscore, 1000).show(); //Outputs score (via performClick) 
    tvA.setText(levelscore); //Does nothing (even via performClick) 
    break; 

default: 
    break; 
} 
} 

回答

1
return inflater.inflate(
     R.layout.fragment_one, container, false);` 

是問題

return view;

+0

非常感謝!忘記更改退貨聲明; \ 我會接受答案時,我將能夠:) – cnsdH 2015-01-21 12:26:14

1

更改此

return inflater.inflate(
     R.layout.fragment_one, container, false); 

return view; 

,因爲你已經在你的view對象膨脹的觀點,所以你需要返回view

0

這是因爲您從onCreateView()返回return inflater.inflate( R.layout.fragment_one, container, false); - 重新初始化佈局,並將它與您以前沒有初始化結束。 使用return view;代替