2011-11-30 102 views
0
Intent i= new Intent(SetTest.this, SetTest.this);// compile error there 
i.putExtra("question_number", questionNumber++); 
startActivity(i); 

我想將數據發佈到同一活動。這是我在mainfest文件中的意圖過濾器:使用意圖重新開始活動

 <activity android:name="SetTest"> 
     <intent-filter android:label="@string/setQuestion"> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

我不明白爲什麼我會得到編譯錯誤?!?

我得到的編譯錯誤,這個太:

Context context=getApplicationContext(); 

意向書I =新意圖(背景下,SetTest.this);

+0

而下一個反應是「我得到了什麼錯誤消息?」請發佈消息。一般來說,調用自己的活動的目的是什麼? –

+0

我想要生成相同的活動,以便用戶填寫數據。它就像一種多種形式,具有確切的領域。我想打電話給創建者(捆綁)......但我不確定這是否是一個更好的決定。錯誤消息,說我需要將構造函數移除到Intent()。它是一個編譯錯誤 – BlackFire27

回答

1

AS其他的答案說:

Intent i= new Intent(SetTest.this, SetTest.Class); 
i.putExtra("question_number", questionNumber++); 
startActivity(i); 
finish(); 

由於您正在加載相同的活動,因此您可能希望完成當前活動以避免導航樹中出現問題。

+0

感謝您的問題。我有另一個問題..我可以看到,android使用每個小部件的許多事件..是否有辦法將代碼拆分成文件..我在一個頁面中有超過500行,並且有點難以導航.. – BlackFire27

+0

嗡嗡聲,直接回答有點困難,但當然可以在活動中使用代碼。首先,您可以創建一個主要活動,並將您當前的活動作爲新課程的一個子類。你也可以創建類來處理數據操作,等等......你可以自由地想象多少,你想 –

+0

你確定意圖張貼到自己,因爲我不能看到oncat方法開始在logcat ..?可能是它將活動添加到活動堆棧中...但我在logcat中沒有看到任何內容,並且我通過的變量保持不變。當我檢索它 – BlackFire27

1

將活動的上下文保存爲可變成員,然後在創建意圖時使用已保存的上下文。

private Context _context; 

Constructor... 
{ 
_context = this; 
} 

然後在按鈕的回調:

Intent i= new Intent(_context, newDesiredClass.class); 
+0

你的代碼與此之間有什麼區別:Context context = getApplicationContext(); – BlackFire27

+0

區別在於第二個參數「.class」,而不是對您的實際環境的引用。「this」 –

1

使用本

Intent i= new Intent(SetTest.this, SetTest.Class); 

希望這將工作

+0

是的,它的工作..你能解釋爲什麼嗎?爲什麼不能使用:SetTest.this,SetTest.this而不是SetTest.this,SetTest.class – BlackFire27