2010-07-09 5 views
5

Chcę nazwać nową aktywność wewnątrz wewnętrznej klasy, która jest zdefiniowana w klasie d, która rozszerza działanie ... utwór napisany w jednej z metod tej klasy wewnętrznej is ::android - wywołanie Intent z klasy Inner

Intencja intencji = nowa intencja (ta, Test2.class); startActivity (zamiar);

Test2 znajduje się wewnątrz tego samego pakietu jako moich głównych clas jest umieszczony i zaćmienie pokazuje mi d ERROR „konstruktor Intent (test.MyTimer, klasa) jest niezdefiniowane” .......

co jest rozwiązaniem?

Odpowiedz

4

Przekazałbym rodzicowi klasę MyTimer w konstruktorze, a następnie możesz przekazać to do Intencji. Intencja wymaga klasy wywodzącej się z kontekstu.

Więc MyTimer mógłby wyglądać

public class MyActivity extends Activity 
{ 
    private void StartTimer() 
    { 
     MyTimer timer = new MyTimer(this); 
     timer.startIntent(); 
    } 

    private class MyTimer 
    { 
     private Activity _context; 
     public MyTimer(Activity c) 
     { 
      _context = c; 
     } 
     public void startIntent() 
     { 
      Intent i = new Intent(_context, MyActivity.class); 
      _context.startActivity(i); 
     } 
    } 
} 

nadzieję, że pomoże.

+0

ya to helpd ... thnks .... moim celem było smthng ale dostał d pojęcia !! – poojan9118

13

Wystarczy użyć MyActivity.this jak tak:

Intent i = new Intent(MyActivity.this, MyActivity.class); 
+0

masz to ........... – poojan9118

+0

wat ma częstotliwość transmisji oznacza? – poojan9118