考虑代码已完成。为什么v.getId()返回-1?
我使用黄油刀加载,toolbar.getId有值
MainActivity extends ActionBarActivity implements View.OnClickListener{
@InjectView(R.id.toolbar)
Toolbar toolbar;
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.mainlayout);
ButterKnife.inject(this);
toolbar.setNavigationOnClickListener(this);
}
public void onClick(View v) {
Log.d("Tag", v.getId() + " " + toolbar.getId());
if (v.getId() == toolbar.getId()) {
}
}
}
我只是不想使用类似的东西在工具栏中的Navigationbuton上设置onclick
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
我的xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="56dp"
app:contentInsetLeft="14dp"
app:contentInsetRight="14dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"></android.support.v7.widget.Toolbar>
</LinearLayout>
答案 0 :(得分:2)
为什么v.getId()返回-1
-1
,是public static final int NO_ID
的值。这意味着您点击的视图没有ID
答案 1 :(得分:1)
没关系。如果点击导航,我无法捕捉到这一点。因为导航工具栏中的单击视图是没有Id的ImageView。
我仍然按照我想要的方式使用,我就这样做了
public void onClick(View v) { if (v.getId() == R.id.button1) {
}else if (v.getId() == R.id.button2) {
}else{
//Navigation Button Here
}
}
}
答案 2 :(得分:0)
可能是你没有在xml布局中设置id。检查一下。
答案 3 :(得分:0)