我正在开发一个使用Reddit API在列表视图中显示大量帖子的应用。当您单击列表视图中的帖子时,计划是打开一个详细信息,显示帖子的一些详细信息。但是,我有一些问题使它成功。
这是我在mainactivity类中使用的代码(显示listview的地方):
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.facebook.drawee.backends.pipeline.Fresco;
public class MainActivity extends Activity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Context context = this;
Fresco.initialize(context);
setContentView(R.layout.activity_main);
addFragment();
View listview = findViewById(R.id.posts_list);
listview.setOnClickListener (new android.widget.AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View p_view,
int p_pos, long arg3) {
TextView text = (TextView ) p_view.findViewById(R.id.post_link); //id of textview from layout file that you are inflating.
CharSequence mytext=text.getText();
Intent i = new Intent(this, DetailActivity.class);
i.putExtra("text",mytext);
startActivity(i);
}
});
};
void addFragment(){
getFragmentManager()
.beginTransaction()
.add(R.id.fragments_holder
, PostsFragment.newInstance("wallpapers"))
.commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
每当点击一个列表项时,textview中的文本为id&#34; post_link&#34;将被发送到新活动,以便我可以在那里显示它。
问题在于行Intent i = new Intent(this, DetailActivity.class);
。 Android Studio说它无法解析构造函数。我从其他问题中尝试了一些解决方案,但遗憾的是,这些解决方案都没有用。
答案 0 :(得分:1)
试试此代码
Intent myIntent = new Intent(getApplicationContext(), DetailActivity.class);
答案 1 :(得分:0)
你在片段里吗?在这种情况下,您的代码应该看起来像
Intent intent = new Intent(getApplicationContext(), DetailActivity.class);
或者您可以保留对上下文的引用并使用它而不是getActivity()
答案 2 :(得分:0)
试试这个
Intent intent = new Intent(First.this, Second.class);
intent.putExtra("mytext","" +p_pos);
startActivity (intent)
答案 3 :(得分:0)
试试这个:
Intent intent = new Intent(getActivity().getApplicationContext(), DetailActivity.class);