2012-07-09 96 views
-2

现在我得到了一个关闭我的android模拟器的力量。按钮没有打开活动发射

完成这个应用程序后,我会想把一个自定义字段,而不是只是测试,但现在我只想测试显示从http活动。

任何帮助将是巨大的!

MainActivity:

public class MainActivity extends Activity { 

public final static String EXTRA_MESSAGE = "com.example.main.MESSAGE"; 


/*@SuppressLint("ParserError") 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
}*/ 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

private Button searchBtn; 

@Override 
protected void onCreate(Bundle savedInstance){ 
    super.onCreate(savedInstance); 
    setContentView(R.layout.activity_main); 

    searchBtn = (Button) findViewById(R.id.button1); 

    searchBtn.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      Intent intent = new Intent(null, http.class); 
      startActivity(intent); 
     } 
    }); 

} 
} 

的Http:

public class http extends Activity { 

public http(){ 
    httpMethod(); 
} 


public void httpMethod(){ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://api.site.com/api/"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     ; 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

     String test = "hello"; 

     TextView myTextView = (TextView) findViewById(R.id.myTextView); 
     myTextView.setText(test); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
}  
} 

清单:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.example.main.DisplayMessageActivity"/> 
    <activity android:name="com.example.main.http"/> 
</application> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
</manifest> 
+0

请提供您的logcat – 2012-07-09 19:51:50

回答

1

您必须初始化Intent这样

Intent intent = new Intent(MainActivity.this, http.class); 

您需要通过Context作为第一个参数而不是null

+0

测试仍然没有显示一次,我点击 – GK1667 2012-07-09 20:00:22

+0

你需要检查你的第二个活动已设定的内容和overrided onCreate方法的按钮。 – Sajmon 2012-07-09 20:05:10

3

有代码一大堆的问题:

1)Intent intent = new Intent(null, http.class);

使用第一个参数为MainActivity.class而不是空

2)httpActivity应该有onCreate(或)onResume生活循环活动方法来创建活动startActivity

不是最少,请花一些时间阅读文档和做示例程序我而不仅仅是输入东西并在SO上发布。通过浏览你的所有问题,就像SO社区为你做了你的应用程序。

1

开始为:

searchBtn.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      Intent intent = new Intent(MainActivity.this, http.class); 
      startActivity(intent); 
     } 
    }); 

而不是意图构造

传递null作为第一个参数的更多信息,请点击这里

http://developer.android.com/reference/android/content/Intent.html

+0

固定的力量关闭......但“测试”仍然没有显示 – GK1667 2012-07-09 19:59:57

0

我真实地建议你读一些Android的基本知识,因为你在代码中有一些问题:

  1. 您有一个null上下文当您初始化按钮的侦听器的意图。您应该有:Intent intent = new Intent(getApplicationContext(), http.class);Intent intent = new Intent(MainActivity.this, http.class);

  2. 您需要创建您的ativity并设置它的内容。您必须覆盖至少onCreate方法。

  3. 这不是很重要,但它是一个很好的习惯,可以编写任何人都可以理解的代码,而不用为机器编写代码!我说这是因为您有* activity_main * sml文件,您可以在其中定义主要活动布局和菜单。我建议你将这些文件名折射到类似main.xml的布局,以及* main_mnu.xml *。

相关问题