public class Equipment extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.equipment);
find_views();
setClick();
bundle = this.getIntent().getExtras();
}
//編號一號
Bundle bundle;
private int hp_max = bundle.getInt("KEY_hp_max");
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.equipment);
find_views();
setClick();
bundle = this.getIntent().getExtras();
}
//編號一號
Bundle bundle;
private int hp_max = bundle.getInt("KEY_hp_max");
private TextView view_hp;
private Button view_equipment_body;
private void find_views()
{
//編號二號view_hp = (TextView) findViewById(R.id.equipment_hp);
view_equipment_body = (Button) findViewById(R.id.equipment_body);
}
private Button view_equipment_body;
private void find_views()
{
//編號二號view_hp = (TextView) findViewById(R.id.equipment_hp);
view_equipment_body = (Button) findViewById(R.id.equipment_body);
}
private void setClick()
{
view_equipment_body.setOnClickListener(body);
}
{
view_equipment_body.setOnClickListener(body);
}
private Button.OnClickListener body = new Button.OnClickListener()
{
public void onClick(View v)
{
hp_max = hp_max + 50;
view_hp.setText(getText(R.string.condition_hp) + nf.format(hp_max));
}
};
}
各位大大好
開頭的package和import我拔掉沒PO到文章,省篇幅
會在我按下按鈕要跳轉到這個Activity時候就直接出現錯誤警告訊息
而我需要在使用者按下按鈕時,改變從上一個Activity傳送過來的資料
如果還要補充什麼,請各位大大說一下,麻煩大大們解惑。
[url=http://www.oz.stu.edu.tw/s95101216/www/Textgame.rar]完整原始碼[/url]
14 則回應
大大你好:
目前手邊有gasolin 大大寫的書
想問一下有無類似介紹語法功能,或例題的書籍推薦
另外想問一下,像我這篇的這種錯誤
就是原始碼上顯示正常無錯誤,執行起來才會出錯強制關閉
像這種錯誤有沒有什麼名詞可以稱呼?
印象中之前好像有聽人說過,但是忘記是什麼了。
keyword 是 SetResult. google 一下吧, 或者找本書也可.
錯是必然的....
宣告, 你幹什麼 = bundle.getint()? 你可以 =0 或者其他數字.
宣告的時候, bundle 你有放東西入去嗎?
錯是必然的....
宣告, 你幹什麼 = bundle.getint()? 你可以 =0 或者其他數字.
宣告的時候, bundle 你有放東西入去嗎?
大大你好:
我那時候秀逗了,竟然放兩次= bundle.getint()
修正後,可以正常無誤執行了!!!!
感謝大大不厭其煩的教導。
------------------------------------------------------------------------------
Bundle是單項Activity傳到另一個Activity
不知道有無會回傳的語法
1 Activity傳送資料到 2 Activity
2 Activity將資料變更後,結束 2 Activity時自動將資料回傳 1 Activity
ming 兄你的問題就是弄不清楚各個位置的用法. 想來你以前是從未寫過程式吧?
其實我自己在寫 android 之也是從未寫過 java. 所以也是個半吊子.
//編號一號 的地方, 雖然你是放在 OnCreate(){} 之下. 但其實是它"上一層", 全個 class
的宣告地區, 你把它放到底最後一個 } 之前也是一樣. 所以你在這裡宣告的, 全個 class
都通用. 叫你把 Bundle bundle; 放在那裡. 這樣, 你所有 method 也可以用它.
到這裡你應明白, 次序依然是: 宣告> 放入>提取.
現在你又把 int hp_max = bundle.getInt("KEY_hp_max"); 放回 OnCreate() 內.
這樣, hp_max 就變成 OnCreate 內的函數. 對 body 而言, 它是一個不明物體.
把 int hp_max 放回 //編號一號, 把 OnCreate 內的改為
hp_max = bundle.getInt("KEY_hp_max"); 那就應該行了.
現在你再看一次 gasolin 大大的
http://code.google.com/p/androidbmi/wiki/BmiRefactor
你就明白這段為什麼要這樣抽出來.
ming 兄你的問題就是弄不清楚各個位置的用法. 想來你以前是從未寫過程式吧?
其實我自己在寫 android 之也是從未寫過 java. 所以也是個半吊子.
//編號一號 的地方, 雖然你是放在 OnCreate(){} 之下. 但其實是它"上一層", 全個 class
的宣告地區, 你把它放到底最後一個 } 之前也是一樣. 所以你在這裡宣告的, 全個 class
都通用. 叫你把 Bundle bundle; 放在那裡. 這樣, 你所有 method 也可以用它.
到這裡你應明白, 次序依然是: 宣告> 放入>提取.
現在你又把 int hp_max = bundle.getInt("KEY_hp_max"); 放回 OnCreate() 內.
這樣, hp_max 就變成 OnCreate 內的函數. 對 body 而言, 它是一個不明物體.
把 int hp_max 放回 //編號一號, 把 OnCreate 內的改為
hp_max = bundle.getInt("KEY_hp_max"); 那就應該行了.
現在你再看一次 gasolin 大大的
http://code.google.com/p/androidbmi/wiki/BmiRefactor
你就明白這段為什麼要這樣抽出來.
大大你好:
是的,以前就只有上課時,聽聽老師教的,做些簡單迴圈之類的練習
沒有實際上寫一個"完整"的程式出來過。
我將gasolin 電子書的"重構程式"重新看過一次後
理解如下,如有錯誤請糾正
但是實際執行後卻仍然出現第一篇Activity跳轉失敗的警告訊息。
我指的訊息如下圖
http://www.oz.stu.edu.tw/s95101216/www/error.JPG
朋友你還不太弄清楚程式的幾個基本次序
宣告: Bundle bundle;
放入: bundle = this.getIntent().getExtras();
提取: lv = bundle.getInt("KEY_lv");
你未放入, 如何提取?
你 "//編號一號" 的地方只用來宣告的.
何解你硬要用它執行?
為何不把 hp_max = bundle.getInt("KEY_hp_max");
放入 OnCreate 內的 bundle = this.getIntent().getExtras(); 下面?
建議你從頭到尾跟 gasolin 大大學一次基本的.
http://code.google.com/p/androidbmi/wiki/DiveIntoAndroid
朋友你還不太弄清楚程式的幾個基本次序
宣告: Bundle bundle;
放入: bundle = this.getIntent().getExtras();
提取: lv = bundle.getInt("KEY_lv");
你未放入, 如何提取?
你 "//編號一號" 的地方只用來宣告的.
何解你硬要用它執行?
為何不把 hp_max = bundle.getInt("KEY_hp_max");
放入 OnCreate 內的 bundle = this.getIntent().getExtras(); 下面?
建議你從頭到尾跟 gasolin 大大學一次基本的.
http://code.google.com/p/androidbmi/wiki/DiveIntoAndroid
大大你好:
我若將hp_max = bundle.getInt("KEY_hp_max");放到
OnCreate 內的 bundle = this.getIntent().getExtras(); 下面的話
我按鈕內hp_max = hp_max + 50;中的hp_max會顯示無法解析
若按照大大說法,應該是如下擺放吧
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.equipment);
find_views();
setClick();
bundle = this.getIntent().getExtras();
int hp_max = bundle.getInt("KEY_hp_max");
}
Bundle bundle;
可是這樣順序不就變成
放入>提取>宣告 了嗎
gasolin大大的電子書,我有從頭到尾實作過一次
因此我原始碼中許多的寫法,滿多都是從gasolin大大的例題演變而來
他書中bundle的應用部分,是在↓
private void showResults()
{
處理運算過後的身高體重的bmi
}
而bundle這部分在我原始碼內的這個地方↓
public void find_condition()
{
}
有實際應用,確實可以無誤正確執行並取得數值
唯獨要將數值傳入按鈕內一直無法成功↓
private Button.OnClickListener body = new Button.OnClickListener()
{
public void onClick(View v)
{
}
};
你的
setClick();
find_views();
對掉了.
你還未 find_views() 告訴程式 view_equipment_body 是什麼,
你又如何 setOnClickListener 給她呢?
你的
setClick();
find_views();
對掉了.
你還未 find_views() 告訴程式 view_equipment_body 是什麼,
你又如何 setOnClickListener 給她呢?
大大你好:
在我程式碼裡面,順序是
find_views();
setClick();
應該是我當初編輯文章時,不小時弄到了,造成困擾 抱歉!!
我確認後,順序是沒問題的,可是依然會出現上面說的錯誤訊息
--------------
順便在首篇修改上面的錯誤
首篇底下加上完整原始碼
int lv = bundle.getInt("KEY_lv");
當然要在
Bundle bundle = this.getIntent().getExtras();
的同一個 procedure 內才可用啦.
如果你想在其他地方都能用 bundle, 那你應在編號一號加上: Bundle bundle;
OnCreate 內加 bundle = this.getIntent().getExtras();
int lv = bundle.getInt("KEY_lv");
當然要在
Bundle bundle = this.getIntent().getExtras();
的同一個 procedure 內才可用啦.
如果你想在其他地方都能用 bundle, 那你應在編號一號加上: Bundle bundle;
OnCreate 內加 bundle = this.getIntent().getExtras();
大大你好:
當我在OnCreate 內加 bundle = this.getIntent().getExtras();
並在編號一加上
Bundle bundle;
int lv = bundle.getInt("KEY_lv");
在我原始碼那邊,的確不會出現錯誤訊息,也都能抓到變數了
可是如果我在編號一加上
Bundle bundle;
int lv = bundle.getInt("KEY_lv");
會出現我第一篇說的情形,在我按下按鈕要跳轉到這個Activity時候就直接出現錯誤警告訊息
編號一號 那裡跟本沒有 procedure, 那如何執行?
拿 bundle 的相關句語, 一般我都收在 OnCreate 內.
一開始就拿下數據, 以後其他 procedure 愛甚樣弄就愛甚樣弄.
編號一號 那裡跟本沒有 procedure, 那如何執行?
拿 bundle 的相關句語, 一般我都收在 OnCreate 內.
一開始就拿下數據, 以後其他 procedure 愛甚樣弄就愛甚樣弄.