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

버튼 클릭시 탭의 지정 부분으로 가지게 하는 방법에 대해서 궁금합니다.

0 추천

 

안녕하세요. 

버튼 이벤트에서 어떻게 지정을 해줘야, 탭의 특정 부분으로 이동시킬지 잘 모르겠습니다 ㅠ

 

현재 버튼이 위치하고 있는 아래의 파일의 이름은 Location.class 입니다.

그리고 Location.class에서 버튼을 클릭했을때의 인텐트 동작은 다음과 같습니다.

바로 Date_and_Seat 클래스의 부분으로 이동을 하는 것이지요.

Loation_Selection_Btn = (Button) findViewById(R.id.Loation_Selection);
Loation_Selection_Btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        Intent intent = new Intent(getBaseContext(),Date_and_Seat.class);
        startActivity(intent);

    }
});

그런데, Date_and_Seat.java 부분은 탭호스트로써 아래와 같이 tabl1, tab2, tab3로 아래와 같이 구성이 되어있습니다.

그리고 위의 Location.class에서 버튼을 눌렀을 경우에, tab2 부분에 클릭이 되어있도록 만들고 싶습니다.

그냥 일반적으로 아래의 Location에서 버튼을 눌렀을 경우에, tab2로 이동 시키는 코드는

tab_host.setCurrentTab(1); 이렇게 입력시킴으로써, 이동을 시킬수가 있었는데( 아래의 버튼의 주석처리 부분)

 다른 액티비티에서, 인텐트를 호출하면서 특정 탭으로 이동을 시키려고 하는데 어떻게 해야할까요 ㅠ

 

소스가 넘치는 부분은, 아래의 댓글에 이어서 좀 달아보았습니다.

 

 

 

 

비선아 (920 포인트) 님이 2016년 11월 11일 질문
import android.content.Intent;
import android.graphics.drawable.Icon;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;

public class Date_and_Seat extends AppCompatActivity {

    Button btn;
    ScrollView v1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_date_and__seat);


                final TabHost tab_host = (TabHost) findViewById(R.id.tabhost);
                tab_host.setup();

                TabHost.TabSpec Tap1 = tab_host.newTabSpec("tab1");
                Tap1.setIndicator("1번");
                Tap1.setContent(R.id.tab1);
                tab_host.addTab(Tap1);

                TabHost.TabSpec Tap2 = tab_host.newTabSpec("tab2");
                Tap2.setIndicator("2번");
                Tap2.setContent(R.id.tab2);
                tab_host.addTab(Tap2);

                TabHost.TabSpec Tap3 = tab_host.newTabSpec("tab2");
                Tap3.setIndicator("3번");
                Tap3.setContent(R.id.tab3);
                tab_host.addTab(Tap3);

                tab_host.setCurrentTab(0);


        btn = (Button) findViewById(R.id.First_Tab_Button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(getApplicationContext(),Location.class);
                startActivity(it);

                
            }
        });

    }
}








아래와 같이 고쳐보았는데도 어디가 잘못되어서 버튼을 눌렀을때, tab2가 클릭되도록 하게 안되는

건가요 ㅠ

버튼부분에 아래와 같이 구현을 했습니다.



Loation_Selection_Btn = (Button) findViewById(R.id.Loation_Selection);
Loation_Selection_Btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        String tabindex= "";

        Intent intent = new Intent(getBaseContext(),Date_and_Seat.class);
        intent.putExtra("tabindex",1);
        startActivity(intent);

    }
});




그리고 Date_and_Seat 부분에서 아래와 같이 받았습니다.
int Tab_Index = getIntent().getIntExtra("tabIndex", 1);

그런데, 여기서 말씀하신 저 인덱스를 탭호스트 구성 후 currentTab에다가 주시면됩니다. 라는 부분을 이해하지못해서 적용을 시키지 못하고 있습니다.

답변 달기

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