2014-04-01 41 views
-1

我正在開發使用多個片段的Android應用程序。不知何故,在其中一個片段上,當我按下後退按鈕時,似乎什麼也沒有發生。當我再次按下它時,它會將我帶到前一個片段。什麼會導致這種行爲?我只想要一次按下後退按鈕。需要按兩次才能返回到前一個片段

這是片段的代碼:

public class FragmentMeerInfo extends Fragment 
{ 
final static String ARG_POSITION = "position"; 
int mCurrentPosition = -1; 
public SharedPreferences passedName; 
private String knNaam; 
public View view; 

public FragmentMeerInfo() 
{ 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 
{ 
    if (savedInstanceState != null) 
    { 
     mCurrentPosition = savedInstanceState.getInt(ARG_POSITION); 
    } 
    view = inflater.inflate(R.layout.fragment_meerinfo, container, false); 
    passedName = getActivity().getSharedPreferences("PASSED_NAME", 0); 
    knNaam = passedName.getString("knNaam", null); 

    Typeface tfreg = Typeface.createFromAsset(getActivity().getAssets(), 
      "Roboto-Regular.ttf"); 
    Typeface tfbold = Typeface.createFromAsset(getActivity().getAssets(), 
      "Roboto-Black.ttf"); 

    SQLClass SQLReader = new SQLClass(getActivity()); 
    ObjectKunstenaar kn = new ObjectKunstenaar(); 
    kn = SQLReader.getSingleKn(knNaam); 

    TextView TvTitle = (TextView) view.findViewById(R.id.tvTitel); 
    TextView TvInfo = (TextView) view.findViewById(R.id.tvInfo); 
    ImageView IvImage = (ImageView) view.findViewById(R.id.imgKunstenaar); 

    TvTitle.setText("Biografie " + knNaam); 
    TvTitle.setTypeface(tfbold); 

    TvInfo.setText(kn.getKunstenaarInfo()); 
    TvInfo.setTypeface(tfreg); 

    Bitmap bitmap; 

    final File image = new File(getActivity().getFilesDir() 
      .getAbsolutePath() 
      + File.separator 
      + "kn" 
      + File.separator 
      + String.valueOf(kn.getKunstenaarId()) 
      + File.separator 
      + "thumb.jpg"); 
    FileInputStream fi; 

    try 
    { 
     fi = new FileInputStream(image); 
     bitmap = BitmapFactory.decodeStream(fi); 
     fi.close(); 
     IvImage.setImageBitmap(bitmap); 
    } catch (FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    return view; 
} 
} 

我敢肯定,我的代碼是不是最好的,但我還是一個初學者

編輯:我已經找到了我是什麼做錯了。我意外地打開了這個片段兩次,所以它也需要關閉兩次。感謝您的快速回復!

+0

發表一些代碼如何將片段附加到活動? – Libin

回答

-1

我已經發現我做錯了什麼。我意外地打開了這個片段兩次,所以它也需要關閉兩次。感謝您的快速回復!

+0

我回答了我自己的問題。 – Ruben2112

0

嘗試覆蓋您的活動中的OnKeyUpOnKeyDown

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // check if user press two times and back to previous fragment! 

     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
相關問題