我是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'以检查是否存在问题。但即使这样,模拟器也没有表现出祝酒。
答案 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;
}
}
}