我想点击textView以便它可以转到第二个类活动
public void click(View v){
Intent intent;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(this,userExpense.class);
break;
case R.id.titleIncome:
intent = new Intent(this,userIncome.class);
break;
}
startActivity(intent);
}
我遇到的错误是意图startActivity(intent),我不完全确定我在哪里声明它。
布局:(收入相同)
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/titleExpense"
android:id="@+id/titleExpense"
android:textSize="20sp"
android:clickable="true"
android:onClick="onClick"
android:layout_below="@+id/txtGroup"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
从清单文件中:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".userExpense" />
<activity android:name=".userIncome"></activity>
</application>
答案 0 :(得分:2)
根据
android:onClick="onClick"
您的方法需要命名为onClick
,而不是click
。
public void onClick(View v){
Intent intent = null;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(this,userExpense.class);
break;
case R.id.titleIncome:
intent = new Intent(this,userIncome.class);
break;
}
if (null!=intent) startActivity(intent);
}
或者,使用Java代码将setOnClickListener放入textview。
答案 1 :(得分:0)
试试这个,
public void click(View v){
Intent intent;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(this,userExpense.class);
startActivity(intent);
break;
case R.id.titleIncome:
intent = new Intent(this,userIncome.class);
startActivity(intent);
break;
}
}
答案 2 :(得分:0)
当您提到&#39; this
&#39; ,它指的是你点击的View
的实例,你可以使用getApplicationContext()
来引用父Activity并始终使用default with switch case来避免null错误,请尝试下面的代码
public void click(View v){
Intent intent;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(getApplicationContext(),userExpense.class);
break;
case R.id.titleIncome:
default :
intent = new Intent(getApplicationContext(),userIncome.class);
break;
}
startActivity(intent);
}
答案 3 :(得分:0)
你应该修改你的xml
例如,
<TextView
android:id="@+id/tv1"
android:layout_width=blahblah
android:layout_height=blahblah
android:onClick="onClick"
android:clickable="true" />
并在java文件中
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(this,userExpense.class);
startActivity(intent);
break;
case R.id.titleIncome:
intent = new Intent(this,userIncome.class);
startActivity(intent);
break;
}
}
});
答案 4 :(得分:0)
试试这个。
public void click(View v){
Intent intent;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(MainActivity.this,userExpense.class);
startActivity(intent);
break;
case R.id.titleIncome:
intent = new Intent(MainActivity.this,userIncome.class);
startActivity(intent);
break;
}
}
答案 5 :(得分:0)
您是否实现了onclickListener并为oncreate中的视图初始化
样品
public class MyActivity extends ActionBarActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.YOUR_LAYOUT);
Button titleExpense= (Button) findViewById(R.id.titleExpense);
titleExpense.setOnClickListener(this);
Button titleIncome = (Button) findViewById(R.id.titleIncome);
titleIncome.setOnClickListener(this);
}
@Override
public void onClick(View v){
Intent intent;
switch(v.getId()){
case R.id.titleExpense:
intent = new Intent(this,userExpense.class);
startActivity(intent);
break;
case R.id.titleIncome:
intent = new Intent(this,userIncome.class);
startActivity(intent);
break;
}
}
答案 6 :(得分:0)
试试这就是制作Intent Global;
Intent intent;
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.text:
intent = new Intent(this, Main2Activity.class);
break;
}
startActivity(intent);
}