ここにmain.xmlのコードがあります
<merge xmlns:Android="http://schemas.Android.com/apk/res/Android">
<RelativeLayout
Android:id="@id/container"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
xmlns:Android="http://schemas.Android.com/apk/res/Android">
<include layout="@layout/tabs" />
<ScrollView
Android:fillViewport="true"
Android:scrollbars="@null"
Android:layout_height="fill_parent"
Android:layout_width="fill_parent">
<LinearLayout
Android:paddingTop="10dp"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<!-- first text_view -->
<TextView
Android:background="@color/grey"
Android:textColor="@color/white"
Android:text="@string/category"
Android:id="@+id/category1"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:layout_marginTop="65dp"
Android:textSize="17dp"
Android:typeface="serif"/>
<!-- first horizontal_scrollview -->
<HorizontalScrollView
Android:scrollbars="@null"
Android:id="@+id/horizontalScrollView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<LinearLayout Android:id="@+id/linearLayout1"
Android:orientation="horizontal"
Android:visibility="visible"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content">
<!-- image_view should be here -->
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
</ScrollView>
</RelativeLayout>
</merge>
ここにtabs.xmlの私のコードがあります
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:background="#333333">
<TextView
Android:textColor="@color/gradient_green"
Android:id="@+id/viewall"
Android:layout_width="85dp"
Android:layout_height="25dp"
Android:layout_marginLeft="10dp"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:textSize="17dp"
Android:textStyle="bold"
Android:text="@string/view_all"
Android:onClick="onClick"
Android:focusable="false"
Android:clickable="true" />
<TextView
Android:textColor="@color/white"
Android:id="@+id/pic"
Android:layout_width="45dp"
Android:layout_height="25dp"
Android:layout_alignParentTop="true"
Android:layout_toRightOf="@+id/viewall"
Android:textSize="17dp"
Android:textStyle="bold"
Android:text="@string/pic"
Android:onClick="onClick"
Android:focusable="false"
Android:clickable="true" />
</RelativeLayout>
main.Java内のコードは次のとおりです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView all = (TextView) this.findViewById(R.id.viewall);
TextView pic = (TextView) this.findViewById(R.id.pic);
all.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TextView all = (TextView) findViewById(R.id.viewall);
TextView pic = (TextView) findViewById(R.id.pic);
Toast.makeText(Main.this, "VIEW ALL", Toast.LENGTH_SHORT).show();
all.setTextColor(getResources().getColorStateList(R.color.gradient_green));
pic.setTextColor(getResources().getColorStateList(R.color.white));
}
});
pdf.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TextView all = (TextView) findViewById(R.id.viewall);
TextView pic = (TextView) findViewById(R.id.pic);
Toast.makeText(Main.this, "VIEW ALL", Toast.LENGTH_SHORT).show();
all.setTextColor(getResources().getColorStateList(R.color.white));
pic.setTextColor(getResources().getColorStateList(R.color.gradient_green));
}
});
}
したがって、Main.classまたはMain.JavaのsetContentView()をsetContentView(R.layout.main)ではなくsetContentView(R.layout.tabs)として設定すると、onClick()が機能します。 onClick()が動作しないのを妨げる私のコードで間違っていますか?
これらを使用
all = (TextView) this.findViewById(R.id.viewall);
pdf = (TextView) this.findViewById(R.id.pic);
作成してから設定する
oncreate()メソッドのall.setOnclickListener(this)もエラーを表示する場合にonClicklistenerを実装します。それは魅力のように機能します。
編集済み
TextView btn=(TextView) findViewById(R.id.accInfo);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//DO you work here
}
});
ClicklistennerをTextViewに設定すると、自動的にクリック可能になるため、必要ありません
Android:clickable="true"
簡単な方法があります。これをXMLのTextViewに追加します。
Android:clickable="true"
Android:clickable="true"
に<TextView>
を追加します
OnCreateメソッドでは、次のことを行う必要があります。
また、クラスはOnClickListenerを実装する必要もあります。
public class SqliteTestsActivity extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView all = (TextView) R.findViewById(R.id.viewall);
all.setOnClickListener(this);
}
public void onClick(View v) {
// Fill in this with your switch statement
}
}