0

나는 조각을 가지고 그 조각에서 나는TabHost 내에서 활동을 호출하려면 어떻게해야합니까?

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

    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_test_fragment, container, false); 

    Button button = (Button) view.findViewById(R.id.button2); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(getActivity(), AnotherPage.class); 
      startActivity(i); 
     } 
    }); 

지금이 잘 작동 다른 활동을 호출 할 수있는 버튼이 있습니다.

하지만 지금은 같은 것을하고 싶지만이 조각에서 만든 TabHost 안에 있습니다.

내 탭 내에서 getActivity()을 어떻게 호출합니까?

나는 일을 시도 :

public class tab_two_graph extends AppCompatActivity { 

    View v; 

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

    Intent intent = getParent().getIntent(); 
    v = intent.getParcelableExtra("view"); 

    Button b = (Button) findViewById(R.id.button2); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(v.getActivity(), Alert_main_page.class); 
      startActivity(i); 
     } 
    }); 

    } 

을하지만 그것은 단지 오류가 발생합니다.

+0

보기 v; --- 그것을 "공개 최종"하려고하십시오. 그리고 오류 내용 (런타임 또는 ompiler에서 구문을 허용하지 않음) –

+0

무엇이 오류입니까? – AbhayBohra

답변

1

그냥 대답을 여기에 더 많은 정보를 추가하려고 시도 "AppCompatActivity"을 확장합니다.

다른 활동을 시작하기 위해 활동을 전달할 필요는 없습니다. tab_two_graph.this을 사용하여 액세스 할 수있는 컨텍스트를 전달해야합니다. 그래서 다음과 같은 작품입니다 :

startActivity(new Intent(tab_two_graph.this, Alert_main_page.class)); 
1

보기가 아닌 현재 활동으로 호출해야합니다. 따라서 다음을 사용하여 전화 할 수 있습니다.

Button b = (Button) findViewById(R.id.button2); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(tab_two_graph.this, Alert_main_page.class); 
      startActivity(i); 
     } 
    }); 

Starting Another Activity 에서 읽으십시오.

1

공용 클래스 tab_two_graph는 < < < < <

Intent i = new Intent(tab_two_graph.this, Alert_main_page.class); 
      startActivity(i); 
+0

tab_two_graph에 이미 활동이 있습니다. –

1

Intent i = new Intent(((<YourActivityName>) getActivity()), AnotherPage.class); 
      startActivity(i);