2017-10-12 13 views
0

私の目標は、スピナーリストから項目の背景色を変更することですmain_activitysetOnItemSelectedListenerを解決できません

しかし何らかの理由で私は働くことができませんsetOnItemSelectedListener

スピナーも罰金、トーストを動作しますが、setOnItemSelectedListenerは取得エラーです:「のシンボルを解決するカント...」

は、私の場合に適用された任意のヘルプをオンラインで見つけることができませんでした。

以下のコードを参照してください:あなたのスピナーのためのコードの下

import android.graphics.Color; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Spinner; 
    import android.widget.AdapterView; 
    import android.widget.TextView; 
    import android.widget.Button; 
    import android.widget.ToggleButton; 
    import android.widget.ArrayAdapter; 
    import android.widget.Toast; 
    import java.util.*; 

public class MainActivity extends AppCompatActivity implements 
AdapterView.OnItemSelectedListener { 

private TextView tekst1; 
private int ile = 1; 
private Button klawisz1; 
private ToggleButton onOff; 
private Spinner spinner1; 

public void setActivityBackgroundColor(int color) { 
    View view = this.getWindow().getDecorView(); 
    view.setBackgroundColor(color); 
} 



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

    tekst1 = (TextView) findViewById(R.id.tekst); 
    klawisz1 = (Button) findViewById(R.id.button); 
    onOff = (ToggleButton) findViewById(R.id.toggleButton); 
    spinner1 = (Spinner) findViewById(R.id.spinner); 

    spinner1.setOnItemSelectedListener((AdapterView.OnItemSelectedListener) this); 
    spinner1.setOnItemSelectedListener(this); 



    List<String> colors = new ArrayList<String>(); 
    colors.add("White"); 
    colors.add("Yellow"); 




    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, colors); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(dataAdapter); 

    onOff.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if ((++ile%2)==0) { 
       spinner1.setVisibility(View.VISIBLE); 
      } 
      else{ 
       spinner1.setVisibility(View.GONE); 
      } 
     } 
    }); 
} 
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
{ 

public void onItemSelected(AdapterView<?> parent, View view, int position, 
long id) { 
    // On selecting a spinner item 
    //setActivityBackgroundColor(Color.YELLOW); 
    String item = parent.getItemAtPosition(position).toString(); 

    if(selectedItem.equals("White")) 
    { 
     setActivityBackgroundColor(Color.WHITE); 
    } 
    else if(selectedItem.equals("Yellow")) 
    { 
     setActivityBackgroundColor(Color.YELLOW); 
    } 

    // Showing selected spinner item 
    //Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); 
} 
public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
} 

}); 
    public void buttonOnClick(View view) { 
    if ((++ile%2)==0){ 
     tekst1.setText(new Date().toString()); 
     klawisz1.setBackgroundColor(Color.RED); 
    } 
    else 
    { 
     tekst1.setText("Next click - TIME"); 
     klawisz1.setBackgroundColor(Color.GREEN); 
    } 
} 
+0

完全なコードを貼り付けましたか?私には最後に「}」がないように見えます。それを置くと、あなたのコードは私にとってうまくコンパイルされます。 –

+1

あなたはエラーについてより具体的になることができますか? "..."ではない完全なエラーを投稿してください – pleft

+0

全体のコードを貼り付けるのは本当に役に立たないのですが、それはちょうど "期待される"エラーとそれがすべてです。問題の原因は何らかの理由でsetOnItemSelectedListenerが認識されないことです。 – Yubey

答えて

0

試してみてください。

mTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       // Do your stuff at item selection time. 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
        // Intentionally kept blank 
      } 
     }); 
+0

ありがとうございますが、動作しませんでしたが、それはまだ同じエラーです。私は自分のコードの周りを包み込むと、それはビューパラメータと他のいくつかを認識しなかったので追加の新しいものを生成しました – Yubey

0

それはあなたがsetOnItemSelectedListenerスピナーのための2回1

\\ spinner1.setOnItemSelectedListener((AdapterView.OnItemSelectedListener) 
    this);   \\not required 

    spinner1.setOnItemSelectedListener(this); 

を設定しているbecozです1つのsetOnItemSelectedListenerだけを設定する必要がありますspinner1

+0

フィードバックありがとうございますが、これはケースを解決しませんでした。まだエラーがあります。また、setOnItemSelectedListenerを使用してコードを編集して、エラーが正確にどこにあるかを表示します – Yubey

+0

アイテムを選択するときにスピナーデータが表示されますか? – minnu

0

このコードはsetOnItemSelectedListener()コールとコードがonCreate()法の外にある前に、あなたは余分な}を持っている... me.Tryそれを

import android.graphics.Color; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.ToggleButton; 

import java.util.ArrayList; 
import java.util.Date; 
import java.util.List; 

public class MainActivity extends AppCompatActivity implements 
AdapterView.OnItemSelectedListener { 

List<String> colors; 
private TextView tekst1; 
private int ile = 1; 
private Button klawisz1; 
private ToggleButton onOff; 
private Spinner spinner1; 

public void setActivityBackgroundColor(int color) { 
    View view = this.getWindow().getDecorView(); 
    view.setBackgroundColor(color); 
} 


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

    tekst1 = (TextView) findViewById(R.id.tekst); 
    klawisz1 = (Button) findViewById(R.id.button); 
    onOff = (ToggleButton) findViewById(R.id.toggleButton); 
    spinner1 = (Spinner) findViewById(R.id.spinner); 

    klawisz1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      buttonOnClick(view); 
     } 
    }); 
    spinner1.setOnItemSelectedListener(this); 

    colors = new ArrayList<String>(); 


    colors.add("White"); 
    colors.add("Yellow"); 


    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, colors); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(dataAdapter); 

    onOff.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if ((++ile % 2) == 0) { 
       spinner1.setVisibility(View.VISIBLE); 
      } else { 
       spinner1.setVisibility(View.GONE); 
      } 
     } 
    }); 
} 

public void onItemSelected(AdapterView<?> parent, View view, int position, 
          long id) { 
    // On selecting a spinner item 
    //setActivityBackgroundColor(Color.YELLOW); 
    String item = colors.get(position); 

    if (item.equals("White")) { 
     setActivityBackgroundColor(Color.WHITE); 
    } else if (item.equals("Yellow")) { 
     setActivityBackgroundColor(Color.YELLOW); 
    } 

    // Showing selected spinner item 
    //Toast.makeText(parent.getContext(), "Selected: " + item,     
    //Toast.LENGTH_LONG).show(); 
} 

public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
} 


public void buttonOnClick(View view) { 
    if ((++ile % 2) == 0) { 
     tekst1.setText(new Date().toString()); 
     klawisz1.setBackgroundColor(Color.RED); 
    } else { 
     tekst1.setText("Next click - TIME"); 
     klawisz1.setBackgroundColor(Color.GREEN); 
    } 
} 
} 
0

をうまく働きました。 spinner1.setOnItemSelectedListener(...)のようなコードは、メソッド内にある必要があります。

関連する問題