[android] 홈 버튼에 대한 작업 표시 줄의 onClick 리스너

onClickListener액션 바의 홈 버튼에 대한 사용자 정의 를 구현하려면 어떻게 해야합니까?

이미 a를 수행 getSupportActionBar().setDisplayHomeAsUpEnabled(true);했으며 이제 홈 버튼을 클릭 한 경우 사용자를 특정 활동으로 리디렉션하고 싶습니다.

나는 시도했다 :

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                public boolean onMenuItemClick(MenuItem item) {
                    Intent i = new Intent();
                    i.setClass(BestemmingActivity.this, StartActivity.class);
                    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(i);
                    return true;
                }
            });
        default:
            return super.onOptionsItemSelected(item);
        }
    }

하지만 onMenuItemClick.

기본적 으로이 링크 에서와 같이 수행 되지만 여전히 리스너에 들어 가지 않습니다.



답변

다른 사람이 솔루션이 필요한 경우

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == android.R.id.home) {
        onBackPressed();  return true;
    }

    return super.onOptionsItemSelected(item);
}


답변

actionBarSherlock을 사용합니다. 설정 한 후에는 supportActionBar.setHomeButtonEnabled(true);
onMenuItemSelected 메서드를 재정의 할 수 있습니다.

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {

    int itemId = item.getItemId();
    switch (itemId) {
    case android.R.id.home:
        toggle();

        // Toast.makeText(this, "home pressed", Toast.LENGTH_LONG).show();
        break;

    }

    return true;
}

이 일이 당신을 위해 일하기를 바랍니다 ~~~ 행운을 빕니다


답변

시스템을 사용하면 액션 바 다음 코드가 잘 작동합니다.

getActionBar().setHomeButtonEnabled(true);

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {

    int itemId = item.getItemId();
    switch (itemId) {
    case android.R.id.home:
      //do your action here.
        break;

    }

    return true;
}


답변

고정 : 사용할 필요가 없습니다. setOnMenuItemClickListener . 버튼을 누르기 만하면 인 텐트를 통해 활동을 생성하고 시작합니다.

여러분의 도움에 감사드립니다!


답변

무슨 일이 일어나고 있는지 절반으로 대답합니다. manifest.xml 시스템의 상위 활동 세트가 상위 활동으로 이동할 때 onOptionsItemSelected제어 homeAsUp버튼 이 아닌 경우 . 활동 태그에서 다음과 같이 사용하십시오.

<activity ... >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.activities.MainActivity" />
</activity>


답변

ICS에서 실행중인 경우 명시 적으로 홈 작업을 활성화해야합니다. 에서 워드 프로세서 :

참고 : 아이콘을 사용하여 홈 활동으로 이동하는 경우 Android 4.0 (API 레벨 14)부터는 setHomeButtonEnabled (true)를 호출하여 아이콘을 작업 항목으로 명시 적으로 활성화해야합니다 (이전 버전에서는 아이콘은 기본적으로 작업 항목으로 활성화되었습니다.


답변

작업 표시 줄 onClickListener를 사용자 정의하는 가장 좋은 방법은 onSupportNavigateUp ()입니다.

이 코드는 코드 를 돕는 데 유용한 링크입니다.