Android吐司没有显示

时间:2014-02-28 13:24:15

标签: java android toast

我是android开发的初学者。我正在努力使吐司工作,但我发现代码没有任何问题。

这是xml代码。     

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="20dp"
    android:gravity="center"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/topbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dravaka_dark" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#3333" >
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginTop="20dp"
    android:gravity="left"
    android:orientation="vertical"
    android:paddingTop="10dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp" >

        <ImageView
            android:id="@+id/about_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_margin="10dp"
            android:layout_marginLeft="20dp"
            android:scaleType="fitXY"
            android:src="@drawable/about_icon" />

        <TextView
            android:id="@+id/about_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:clickable="true"
            android:text="@string/about_title"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp" >

        <ImageView
            android:id="@+id/schedule_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_margin="10dp"
            android:scaleType="fitXY"
            android:src="@drawable/schedule_icon" />

        <TextView
            android:id="@+id/schedule_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:clickable="true"
            android:text="@string/schedule_title"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp" >

        <ImageView
            android:id="@+id/songs_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_margin="10dp"
            android:scaleType="fitXY"
            android:src="@drawable/songs_icon"
            android:textSize="25sp" />

        <TextView
            android:id="@+id/songs_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:clickable="true"
            android:text="@string/songs_title"
            android:textSize="25sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp" >

        <ImageView
            android:id="@+id/contact_icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_margin="10dp"
            android:scaleType="fitXY"
            android:src="@drawable/contact_icon" />

        <TextView
            android:id="@+id/contact_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:clickable="true"
            android:text="@string/contact_title"
            android:textSize="25sp" />
    </LinearLayout>
</LinearLayout>

</LinearLayout>

这是java代码

 public class MainActivity extends Activity implements OnClickListener {

    TextView aboutBtn;
    TextView performancesBtn;
    TextView songsBtn;
    TextView contactBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        aboutBtn = (TextView) findViewById(R.id.about_tab);
        performancesBtn = (TextView) findViewById(R.id.schedule_tab);
        songsBtn = (TextView) findViewById(R.id.songs_tab);
        contactBtn = (TextView) findViewById(R.id.contact_tab);

        aboutBtn.setOnClickListener(this);
        performancesBtn.setOnClickListener(this);
        songsBtn.setOnClickListener(this);
        contactBtn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {
        case R.id.about_icon:
            Toast.makeText(MainActivity.this, "about clicked",
                    Toast.LENGTH_LONG).show();
            break;
        case R.id.schedule_icon:
            Toast.makeText(getApplicationContext(), "schedule clicked",
                    Toast.LENGTH_LONG).show();
            break;

        case R.id.songs_icon:
            Toast.makeText(getApplicationContext(), "songs clicked",
                    Toast.LENGTH_LONG).show();
            break;

        case R.id.contact_icon:
            Toast.makeText(getApplicationContext(), "contact clicked",
                    Toast.LENGTH_LONG).show();
            break;

        }

    }
    }

我只是个初学者。请不要批评我提出一个愚蠢的问题。我知道这可能是最简单的解决方案。

在祝酒词中,我尝试了'MainActivity.this'以检查是否存在问题。但即使这样,模拟器也没有表现出祝酒。

3 个答案:

答案 0 :(得分:5)

您在OnClickListener上设置了TextView,但请启用ImageView ID。 ImageView将永远不会获得点击,您也没有代码可以处理TextView次点击。

答案 1 :(得分:1)

你应该替换这个

aboutBtn = (TextView)findViewById(R.id.about_tab);
performancesBtn = (TextView)findViewById(R.id.schedule_tab);
songsBtn = (TextView)findViewById(R.id.songs_tab);
contactBtn = (TextView)findViewById(R.id.contact_tab);

使用

ImageView aboutBtn = (ImageView)findViewById(R.id.about_icon);
ImageView performancesBtn = (ImageView)findViewById(R.id.schedule_icon);
ImageView songsBtn = (ImageView)findViewById(R.id.songs_icon);
contactBtn = (ImageView ) findViewById(R.id.contact_icon);

您将Ids错误传递到Switch Case。如果您要onclick()执行ImageView,请传递ImageView个ID。在这里,您正在传递textView Ids,如果您想要执行onClick() txtView,那么应该使用以下内容更改您的Switch Case

   switch (v.getId()) {
  case R.id.about_tab:
    Toast.makeText(MainActivity.this, "about clicked",
            Toast.LENGTH_LONG).show();
    break;
  case R.id.schedule_tab:
    Toast.makeText(getApplicationContext(), "schedule clicked",
            Toast.LENGTH_LONG).show();
    break;

  case R.id.songs_tab:
    Toast.makeText(getApplicationContext(), "songs clicked",
            Toast.LENGTH_LONG).show();
    break;

  case R.id.contact_tab:
    Toast.makeText(getApplicationContext(), "contact clicked",
            Toast.LENGTH_LONG).show();
    break;

 }

答案 2 :(得分:0)

试试这个

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    aboutBtn = (TextView) findViewById(R.id.about_tab);
    performancesBtn = (TextView) findViewById(R.id.schedule_tab);
    songsBtn = (TextView) findViewById(R.id.songs_tab);
    contactBtn = (TextView) findViewById(R.id.contact_tab);

    aboutBtn.setOnClickListener(this);
    performancesBtn.setOnClickListener(this);
    songsBtn.setOnClickListener(this);
    contactBtn.setOnClickListener(this);
}

@Override
public void onClick(View v) {

    switch (v.getId()) {
    case R.id.about_tab:
        Toast.makeText(MainActivity.this, "about clicked",
                Toast.LENGTH_LONG).show();
        break;
    case R.id.schedule_tab:
        Toast.makeText(getApplicationContext(), "schedule clicked",
                Toast.LENGTH_LONG).show();
        break;

    case R.id.songs_tab:
        Toast.makeText(getApplicationContext(), "songs clicked",
                Toast.LENGTH_LONG).show();
        break;

    case R.id.contact_tab:
        Toast.makeText(getApplicationContext(), "contact clicked",
                Toast.LENGTH_LONG).show();
        break;

    }

}
}