綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 圖轉換成按鈕的過程

[複製連結] 查看: 1989|回覆: 11|好評: 0
跳轉到指定樓層
樓主
lieak5922512 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-6-18 19:17

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
如題 小弟最近在研究個程式碼


  1. class button_1CL implements OnClickListener{
  2. public void onClick(View v) {
  3.       String button = tv_1.getText().toString();
  4.       switch(v.getId())
  5.       {
  6.       case R.id.btn_1:
  7.       {
  8.       tv_1.setText(button+"1");
  9.       break;
  10.       }
  11. }
  12. }
  13. }
複製代碼

這是我在寫計算機常用到的switch迴圈

可是裡面東西是從圖裡獲取id 雖然說按鈕已經轉成字串了 讀的到 可是這樣的東西沒有意義 因為 按鈕 字串 圖 這3個都是不一樣的東西

我想請問他圖是怎麼轉成按鈕的?
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
whl | 收聽TA | 只看該作者
發表於 2014-6-18 19:30
有轉嗎?怎麼看不出來?只看到用對應的方式。
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| lieak5922512 | 收聽TA | 只看該作者
發表於 2014-6-18 20:28
whl 發表於 2014-6-18 19:30
有轉嗎?怎麼看不出來?只看到用對應的方式。


我當初從書上學到得這程式碼 v.getId() 他是從圖得到id 可是按鈕被轉成字串了 再讓v.getId()讀到

因為字串不是圖 圖也不是字串 所以這東西因該沒有意義阿?

再來是那個case R.id.btn_1 跟v.getId() 因該扯不上關西吧? 可是弄switch(R.id())這東西會壞掉

可是 直接讓他讀btn_1 跟從圖上抓是讀得到的 我想問的是他是怎麼用圖就能讓按鈕動起來的?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
whl | 收聽TA | 只看該作者
發表於 2014-6-18 22:40
1."可是按鈕被轉成字串了 再讓v.getId()讀到" 這是你自己的解讀吧,我沒看過那份文件,我不知道你怎麼這樣想的。
2.R.id() 這是什麼東西?
3.每個 view 都會自動給一個 id 以用來對應,所以 case R.id.btn_1 跟v.getId() 有很大的關係,不是你想的那樣。
4.你都會用 onDraw 進階的東西,怎麼會像這種基本功沒學好,難道你都沒學到 findViewById 這個指令嗎?如果有學到,怎麼會說 R.id.btn_1 和 getId() 沒關係?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| lieak5922512 | 收聽TA | 只看該作者
發表於 2014-6-19 01:42
whl 發表於 2014-6-18 22:40
1."可是按鈕被轉成字串了 再讓v.getId()讀到" 這是你自己的解讀吧,我沒看過那份文件,我不知道你怎麼這樣 ...

1.R.getId()才對 抱歉 這東西我找過了 確定是沒有的

2.那個我有學到阿 我是知道那東西作用是讓東西能夠對應到按鈕 textview之類的東西阿

3.用getId()---->對應到case R.id.btn_1裡這我知道   可是這v.getId()是從圖上獲取id這id:btn_1東西

是在按扭身上捏 為啥讀得到?

這是程式碼
Mainactivity

  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.view.View.OnClickListener;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.TextView;
  7. import java.text.DecimalFormat;

  8. public class MainActivity extends Activity {
  9.             TextView tv_1;
  10.             Button   btn_1;
  11.             Button   btn_2;
  12.             Button   btn_3;
  13.             Button   btn_4;
  14.             Button   btn_5;
  15.             Button   btn_6;
  16.             Button   btn_7;
  17.             Button   btn_8;
  18.             Button   btn_9;
  19.             Button   btn_10;
  20.             Button   btn_11;
  21.             Button   btn_12;
  22.             Button   btn_13;
  23.             Button   btn_14;
  24.             Button   btn_15;
  25.             Button   btn_16;
  26.             Button   btn_17;
  27.             double   s;
  28.             double t1;

  29.         @Override
  30.         protected void onCreate(Bundle savedInstanceState)
  31.         {
  32.                 super.onCreate(savedInstanceState);
  33.                 setContentView(R.layout.activity_main);

  34.                 tv_1  =(TextView)findViewById(R.id.tv_1);
  35.                 btn_1 =(Button)findViewById(R.id.btn_1);
  36.                 btn_2 =(Button)findViewById(R.id.btn_2);
  37.                 btn_3 =(Button)findViewById(R.id.btn_3);
  38.                 btn_4 =(Button)findViewById(R.id.btn_4);
  39.                 btn_5 =(Button)findViewById(R.id.btn_5);
  40.                 btn_6 =(Button)findViewById(R.id.btn_6);
  41.                 btn_7 =(Button)findViewById(R.id.btn_7);
  42.                 btn_8 =(Button)findViewById(R.id.btn_8);
  43.                 btn_9 =(Button)findViewById(R.id.btn_9);
  44.                 btn_10 =(Button)findViewById(R.id.btn_10);
  45.                 btn_11 =(Button)findViewById(R.id.btn_11);
  46.                 btn_12 =(Button)findViewById(R.id.btn_12);
  47.                 btn_13 =(Button)findViewById(R.id.btn_13);
  48.                 btn_14 =(Button)findViewById(R.id.btn_14);
  49.                 btn_15 =(Button)findViewById(R.id.btn_15);
  50.                 btn_16 =(Button)findViewById(R.id.btn_16);
  51.                 btn_17 =(Button)findViewById(R.id.btn_17);
  52.        
  53.                
  54.                 btn_1.setOnClickListener(new button_1CL());
  55.                 btn_2.setOnClickListener(new button_2CL());
  56.                 btn_3.setOnClickListener(new button_3CL());
  57.                 btn_4.setOnClickListener(new button_4CL());
  58.                 btn_5.setOnClickListener(new button_5CL());
  59.                 btn_6.setOnClickListener(new button_6CL());
  60.                 btn_7.setOnClickListener(new button_7CL());
  61.                 btn_8.setOnClickListener(new button_8CL());
  62.                 btn_9.setOnClickListener(new button_9CL());
  63.                 btn_10.setOnClickListener(new button_10CL());
  64.                 btn_11.setOnClickListener(new button_11CL());
  65.                 btn_12.setOnClickListener(new button_12CL());
  66.                 btn_13.setOnClickListener(new button_13CL());
  67.                 btn_14.setOnClickListener(new button_14CL());
  68.                 btn_15.setOnClickListener(new button_15CL());
  69.                 btn_16.setOnClickListener(new button_16CL());
  70.                 btn_17.setOnClickListener(new button_17CL());
  71.        
  72.         }
  73.         class button_1CL implements OnClickListener{
  74.                 public void onClick(View v) {
  75.                         String button = tv_1.getText().toString();
  76.                         switch(v.getId())
  77.                         {
  78.                         case R.id.btn_1:
  79.                         {
  80.                         tv_1.setText(button+"1");
  81.                         break;
  82.                         }
  83.                         }
  84.                 }
  85.         }
  86.         class button_2CL implements OnClickListener{
  87.                 public void onClick(View v) {
  88.                         String button = tv_1.getText().toString();
  89.                         switch(v.getId())
  90.                         {
  91.                         case R.id.btn_2:
  92.                         {
  93.                         tv_1.setText(button+"2");
  94.                         break;
  95.                         }
  96.                         }
  97.                 }
  98.         }
  99.         class button_3CL implements OnClickListener{
  100.                 public void onClick(View v) {
  101.                         String button = tv_1.getText().toString();
  102.                         switch(v.getId())
  103.                         {
  104.                         case R.id.btn_3:
  105.                         {
  106.                         tv_1.setText(button+"3");
  107.                         break;
  108.                         }
  109.                         }
  110.                 }
  111.         }
  112.         class button_4CL implements OnClickListener{
  113.                 public void onClick(View v) {
  114.                         String button = tv_1.getText().toString();
  115.                         switch(v.getId())
  116.                         {
  117.                         case R.id.btn_4:
  118.                         {
  119.                         tv_1.setText(button+"4");
  120.                         break;
  121.                         }
  122.                         }
  123.                 }
  124.         }
  125.                        
  126.         class button_5CL implements OnClickListener{
  127.                 public void onClick(View v) {
  128.                         String button = tv_1.getText().toString();
  129.                         switch(v.getId())
  130.                         {
  131.                         case R.id.btn_5:
  132.                         {
  133.                         tv_1.setText(button+"5");
  134.                         break;
  135.                         }
  136.                         }
  137.                 }
  138.         }
  139.         class button_6CL implements OnClickListener{
  140.                 public void onClick(View v) {
  141.                         String button = tv_1.getText().toString();
  142.                         switch(v.getId())
  143.                         {
  144.                         case R.id.btn_6:
  145.                         {
  146.                         tv_1.setText(button+"6");
  147.                         break;
  148.                         }
  149.                         }
  150.                 }
  151.         }
  152.         class button_7CL implements OnClickListener{
  153.                 public void onClick(View v) {
  154.                         String button = tv_1.getText().toString();
  155.                         switch(v.getId())
  156.                         {
  157.                         case R.id.btn_7:
  158.                         {
  159.                         tv_1.setText(button+"7");
  160.                         break;
  161.                         }
  162.                         }
  163.                 }
  164.         }
  165.         class button_8CL implements OnClickListener{
  166.                 public void onClick(View v) {
  167.                         String button = tv_1.getText().toString();
  168.                         switch(v.getId())
  169.                         {
  170.                         case R.id.btn_8:
  171.                         {
  172.                         tv_1.setText(button+"8");
  173.                         break;
  174.                         }
  175.                         }
  176.                 }
  177.         }
  178.         class button_9CL implements OnClickListener{
  179.                 public void onClick(View v) {
  180.                         String button = tv_1.getText().toString();
  181.                         switch(v.getId())
  182.                         {
  183.                         case R.id.btn_9:
  184.                         {
  185.                         tv_1.setText(button+"9");
  186.                         break;
  187.                         }
  188.                         }
  189.                 }
  190.         }
  191.         class button_10CL implements OnClickListener{
  192.                 public void onClick(View v) {
  193.                         String button = tv_1.getText().toString();
  194.                         switch(v.getId())
  195.                         {
  196.                         case R.id.btn_10:
  197.                         {
  198.                         tv_1.setText(button+"0");
  199.                         break;
  200.                         }
  201.                         }
  202.                 }
  203.         }
  204.         class button_15CL implements OnClickListener{
  205.                 public void onClick(View v) {
  206.                         String button = tv_1.getText().toString();
  207.                         switch(v.getId())
  208.                         {
  209.                         case R.id.btn_15:
  210.                         {
  211.                         tv_1.setText(button+".");
  212.                         break;
  213.                         }
  214.                         }
  215.                 }
  216.         }
  217.         class button_11CL implements OnClickListener{
  218.                 public void onClick(View v) {
  219.                         t1=Double.parseDouble(tv_1.getText().toString());
  220.                         s=1;                       
  221.                         tv_1.setText("");
  222.                 }
  223.         }
  224.         class button_12CL implements OnClickListener{
  225.                 public void onClick(View v) {
  226.                         t1=Double.parseDouble(tv_1.getText().toString());
  227.                         s=2;                       
  228.                         tv_1.setText("");
  229.                 }
  230.         }
  231.         class button_13CL implements OnClickListener{
  232.                 public void onClick(View v) {
  233.                         t1=Double.parseDouble(tv_1.getText().toString());
  234.                         s=3;                       
  235.                         tv_1.setText("");
  236.                 }
  237.         }
  238.         class button_14CL implements OnClickListener{
  239.                 public void onClick(View v) {
  240.                         t1=Double.parseDouble(tv_1.getText().toString());
  241.                         s=4;                       
  242.                         tv_1.setText("");
  243.                 }
  244.         }
  245.         class button_16CL implements OnClickListener{
  246.                
  247.                         public void onClick(View v)
  248.                         {
  249.                         double t2=Double.parseDouble(tv_1.getText().toString());
  250.                         DecimalFormat tf = new DecimalFormat("0.00");
  251.                         if(s==1)
  252.                         {
  253.                                 tv_1.setText(tf.format(t1+t2));
  254.                         }
  255.                         else if(s==2){
  256.                                  
  257.                                 tv_1.setText(tf.format(t1-t2));
  258.                         }
  259.                         else if(s==3){
  260.                                  
  261.                                 tv_1.setText(tf.format(t1*t2));
  262.                     }
  263.                         else if(s==4){
  264.                                  
  265.                                 tv_1.setText(tf.format(t1/t2));
  266.                     }
  267.                        
  268.                         }
  269.                        
  270.         }
  271.         class button_17CL implements OnClickListener{
  272.                 public void onClick(View v) {
  273.                        
  274.                         tv_1.setText("");
  275.                 }
  276.         }
  277.         }



複製代碼

activity

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tool="http://schemas.android.com/apk/res/android"
  3.     tool:layout_width="fill_parent"
  4.     tool:layout_height="fill_parent"
  5.     android:orientation="vertical" >
  6.     <TextView
  7.         android:id="@+id/tv_1"
  8.         android:layout_width="fill_parent"
  9.         android:layout_height="wrap_content"
  10.         android:text=""/>
  11.     <LinearLayout
  12.         android:layout_width="fill_parent"
  13.         android:layout_height="wrap_content"
  14.         android:orientation="horizontal">
  15.         <Button
  16.             android:id="@+id/btn_1"
  17.             android:layout_width="wrap_content"
  18.             android:layout_height="wrap_content"
  19.             android:text="@string/btn_1" />
  20.         <Button
  21.             android:id="@+id/btn_2"
  22.             android:layout_width="wrap_content"
  23.             android:layout_height="wrap_content"
  24.             android:text="@string/btn_2" />
  25.         <Button
  26.             android:id="@+id/btn_3"
  27.             android:layout_width="wrap_content"
  28.             android:layout_height="wrap_content"
  29.             android:text="@string/btn_3" />
  30.          <Button
  31.             android:id="@+id/btn_11"
  32.             android:layout_width="wrap_content"
  33.             android:layout_height="wrap_content"
  34.             android:text="@string/btn_11" />
  35.         </LinearLayout>
  36.         <LinearLayout
  37.         android:layout_width="fill_parent"
  38.         android:layout_height="wrap_content"
  39.         android:orientation="horizontal">
  40.         <Button
  41.             android:id="@+id/btn_4"
  42.             android:layout_width="wrap_content"
  43.             android:layout_height="wrap_content"
  44.             android:text="@string/btn_4" />
  45.         <Button
  46.             android:id="@+id/btn_5"
  47.             android:layout_width="wrap_content"
  48.             android:layout_height="wrap_content"
  49.             android:text="@string/btn_5" />
  50.         <Button
  51.             android:id="@+id/btn_6"
  52.             android:layout_width="wrap_content"
  53.             android:layout_height="wrap_content"
  54.             android:text="@string/btn_6" />
  55.         <Button
  56.             android:id="@+id/btn_12"
  57.             android:layout_width="wrap_content"
  58.             android:layout_height="wrap_content"
  59.             android:text="@string/btn_12" />
  60.         </LinearLayout>
  61.         <LinearLayout
  62.         android:layout_width="fill_parent"
  63.         android:layout_height="wrap_content"
  64.         android:orientation="horizontal">
  65.         <Button
  66.             android:id="@+id/btn_7"
  67.             android:layout_width="wrap_content"
  68.             android:layout_height="wrap_content"
  69.             android:text="@string/btn_7" />
  70.         <Button
  71.             android:id="@+id/btn_8"
  72.             android:layout_width="wrap_content"
  73.             android:layout_height="wrap_content"
  74.             android:text="@string/btn_8" />
  75.         <Button
  76.             android:id="@+id/btn_9"
  77.             android:layout_width="wrap_content"
  78.             android:layout_height="wrap_content"
  79.             android:text="@string/btn_9" />
  80.         <Button
  81.             android:id="@+id/btn_13"
  82.             android:layout_width="wrap_content"
  83.             android:layout_height="wrap_content"
  84.             android:text="@string/btn_13" />
  85.         </LinearLayout>
  86.          <LinearLayout
  87.         android:layout_width="fill_parent"
  88.         android:layout_height="wrap_content"
  89.         android:orientation="horizontal">
  90.         <Button
  91.             android:id="@+id/btn_10"
  92.             android:layout_width="wrap_content"
  93.             android:layout_height="wrap_content"
  94.             android:text="@string/btn_10" />
  95.         <Button
  96.             android:id="@+id/btn_15"
  97.             android:layout_width="wrap_content"
  98.             android:layout_height="wrap_content"
  99.             android:text="@string/btn_15" />
  100.         <Button
  101.             android:id="@+id/btn_16"
  102.             android:layout_width="wrap_content"
  103.             android:layout_height="wrap_content"
  104.             android:text="@string/btn_16" />
  105.          <Button
  106.             android:id="@+id/btn_14"
  107.             android:layout_width="wrap_content"
  108.             android:layout_height="wrap_content"
  109.             android:text="@string/btn_14" />
  110.         </LinearLayout>
  111.         <Button
  112.             android:id="@+id/btn_17"
  113.             android:layout_width="fill_parent"
  114.             android:layout_height="wrap_content"
  115.             android:text="@string/btn_17"
  116.              />
  117. </LinearLayout>

複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
CarolHsieh | 收聽TA | 只看該作者
發表於 2014-6-19 09:32
本帖最後由 CarolHsieh 於 2014-6-19 09:34 編輯
  1. public void onClick(View v) {
  2.       String button = tv_1.getText().toString();
  3.       switch(v.getId())
  4.       {
  5.       case R.id.btn_1:
  6.       {
  7.       tv_1.setText(button+"1");
  8.       break;
  9.       }
  10. }
複製代碼

這是當你有click某個物件呼叫到這隻程式的話
那他就是OnClick(View v) 的這個v
也就是說是這個物件(v)叫用了這隻程式(OnClick)
所以v.getId()可以取得當前叫用程式的物件的 id
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
whl | 收聽TA | 只看該作者
發表於 2014-6-19 21:35
如果這是你想的程式碼或者改別人的程式碼,那你要再加強基本功,程式碼可以更簡潔一些,不是程式碼哪裡有大缺失,但有多餘的程式碼。

但是如果這是別人的程式碼,請你別再看了,這跟本就是誤人子弟。
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
 樓主| lieak5922512 | 收聽TA | 只看該作者
發表於 2014-6-19 22:13
whl 發表於 2014-6-19 21:35
如果這是你想的程式碼或者改別人的程式碼,那你要再加強基本功,程式碼可以更簡潔一些,不是程式碼哪裡有大 ...

這東西是我自己寫得我敢發誓,雖然看似多於,不過我覺得我因該會留著在自己手機,因為能動,android這領域我也是剛接觸3個月,而且手上的教材剛好沒有v.getId() (從圖上獲取id)的解釋 也不知道為啥要這樣子做,才來問這按鈕,圖的關係,問了身邊也是剛學不久的人認為是字串才讓東西動起來,想了一下字串跟圖完全扯不上關係阿,最後只好跑來求救了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
 樓主| lieak5922512 | 收聽TA | 只看該作者
發表於 2014-6-19 23:38
本帖最後由 lieak5922512 於 2014-6-19 23:58 編輯
CarolHsieh 發表於 2014-6-19 09:32
這是當你有click某個物件呼叫到這隻程式的話
那他就是OnClick(View v) 的這個v
也就是說是這個物件(v)叫用 ...


可是這東西的物件是圖阿
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

10
CarolHsieh | 收聽TA | 只看該作者
發表於 2014-6-20 14:36
本帖最後由 CarolHsieh 於 2014-6-20 14:40 編輯
lieak5922512 發表於 2014-6-19 23:38
可是這東西的物件是圖阿


=ˇ=
你翻書看看
看哪一個有跟你說
View v
是指圖....

你現在是卡在硬要把View以字面翻譯並定義為圖
你應該要做的是理解為什麼他會可以抓到他的值
而不是View的字義是圖
為什麼圖可以讀Button
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則