Java 使用隐式意图打开活动
我得到了Java 使用隐式意图打开活动,java,android,Java,Android,我得到了NumbersClickListener类的以下错误。我试图使用意图打开NumbersActivity 可以使用MainActivity中的意图打开所有其他活动。代码有什么问题 使用NumbersClickListener类的实现存在一些问题 NumbersClickListener类: package com.example.android.miwok; import android.content.Intent; import android.view.View; import a
NumbersClickListener
类的以下错误。我试图使用意图打开NumbersActivity
可以使用MainActivity
中的意图打开所有其他活动。代码有什么问题
使用NumbersClickListener
类的实现存在一些问题
NumbersClickListener类:
package com.example.android.miwok;
import android.content.Intent;
import android.view.View;
import android.widget.Toast;
public class NumbersClickListener implements View.OnClickListener
{
@Override
public void onClick (View view)
{
Toast.makeText(view.getContext(),"Opening Numbers Category",Toast.LENGTH_SHORT).show();
Intent i = new Intent(this, NumbersActivity.class);
startActivity(i);
}
}
错误与以下代码行有关:Iv尝试了MainActivity。这也是
Intent i = new Intent(this, NumbersActivity.class);
startActivity(i);
主要活动代码
package com.example.android.miwok;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import static android.R.id.message;
import static android.provider.AlarmClock.EXTRA_MESSAGE;
import static com.example.android.miwok.R.id.phrases;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the content of the activity to use the activity_main.xml layout file
setContentView(R.layout.activity_main);
NumbersClickListener clickListener = new NumbersClickListener();
//Find views that shows number category
TextView numbers = (TextView) findViewById(R.id.numbers);
numbers.setOnClickListener(clickListener);
TextView phrases = (TextView) findViewById(R.id.phrases);
phrases.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, PhrasesActivity.class);
startActivity(i);
}
});
TextView family = (TextView) findViewById(R.id.family);
family.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this, FamilyActivity.class);
startActivity(i);
}
});
}
public void openColorsList(View view) {
// setContentView(R.layout.activity_colors); //we can use this to colors xml in main actitvity
Intent i = new Intent(this, ColorsActivity.class);
startActivity(i);
}
}
问题是
Intent i=新的Intent(this,NumbersActivity.class)代码>“这”是数字ClickListener的出现,要开始活动,您需要上下文。因此,将其更改为:
Intent i = new Intent(view.getContext(), NumbersActivity.class);
或者您需要将上下文传递给NumbersClickListener以启动活动
Error:(14, 20) error: no suitable constructor found for Intent(NumbersClickListener,Class<NumbersActivity>)
并使用此上下文而不是this
getContext()
可以是MainActivity类中返回this
的公共方法
现在startActivity(i)是红色的
做context.startActivity(你在这里的意图)代码>
我希望有帮助:)现在startActivity(I)是红色的。错误:(15,9)错误:找不到符号方法startActivity(Intent)错误:任务的执行失败:app:CompiledBugJavaWithJavaC'>编译失败;有关详细信息,请参阅编译器错误输出。view.getContext().startActivity(i)您的类号ClickListener没有方法startActivity,但仅在上下文或活动中使用。因此,为什么我可以在MainActivity中使用startActivity(i),而不是在此处使用。这太令人困惑了。我怎么知道这些呢?看我更新的答案。。我还在编辑它,使它更清楚。等待我的编辑。“这太令人困惑了。我怎么能知道所有这些呢?”是的,如果你是一个初学者,就应该继续学习:)如果你认为我的答案对你有帮助,你可以接受我的答案并投票,谢谢!
Error:(14, 20) error: no suitable constructor found for Intent(NumbersClickListener,Class<NumbersActivity>)
Context context = getContext();
getContext()