无法解析Intent构造函数

时间:2015-06-17 10:00:52

标签: java android

我正在开发一个使用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说它无法解析构造函数。我从其他问题中尝试了一些解决方案,但遗憾的是,这些解决方案都没有用。

4 个答案:

答案 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);