刚学习Android开发的小白 按照书上的代码敲完之后发现模拟运行的时候显示“停止运行” 没办法打开 目前代码没什么毛病 求大神能解答一下
这是clole
[2017-03-22 16:27:14 - ColorCard] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.colorcard/.ColorCardActivity }
[2017-03-22 16:27:14 - ColorCard] ActivityManager: Warning: Activity not started, its current task has been brought to the front
xml里面的组件内容和你声明的组件内容不一致导致的
你看一下,应该是你的布局中textview或者linearlayout有那个地方写错了
你可以选择把你的代码贴出来
package com.example.colorcard;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class ColorCardActivity extends Activity {
//主界面三个tab选项卡(三个线性布局组件)
private LinearLayout sampleTab = null;
private LinearLayout searchTab = null;
private LinearLayout identifyTab = null;
private LinearLayout [] tabs;
//Tab选项卡对应的界面
private View sampleTabView=null;
private View searchTabView=null;
private View identifyTabView=null;
//选项卡下方的布局
private LinearLayout content=null;
//色卡数据列表
private ListsampleList=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_color_card);
//初始化tab控件和tabs数组
sampleTab=(LinearLayout)findViewById(R.id.sampleTab);
searchTab=(LinearLayout)findViewById(R.id.searchTab);
identifyTab=(LinearLayout)findViewById(R.id.identifyTab);
tabs=new LinearLayout []{sampleTab,searchTab,identifyTab};
LayoutInflater factory=LayoutInflater.from(this);
sampleTabView=factory.inflate(R.layout.color_sample,null);
searchTabView=factory.inflate(R.layout.color_search,null);
identifyTabView=factory.inflate(R.layout.color_identify,null);
//程序启动时默认显示色卡样例界面
content=(LinearLayout)findViewById(R.id.content);
content.addView(sampleTabView);
sampleList.clear();
//从资源中获得色卡数据,并按照“\n”切割成字符串数组,字符串数组的每个元素代表一个色卡信息
String sampleColor=getResources().getString(R.string.sample_color_list);
String [] ss =sampleColor.split("\n");
//------------------------------------------------------------------------------------
//解析色卡数据字符串,并转换成ColorSample对象保存
//格式:[十六进制RGB][颜色名][所属类别]
//------------------------------------------------------------------------------------
String rgb,name,category;
int i,j;
for(String s:ss){
rgb=name=category=null;
if(s.trim().length()>0){
//寻找十六进制RGB子串,在第一队[]中
i=s.indexOf('[');
j=s.indexOf(']');
if(j>i&&i>=0){
rgb=s.substring(i+1, j);
}
//寻找颜色名子串,在第二对[]中
i=s.indexOf('[',j);
j=s.indexOf(']', i);
if(j>i&&i>=0){
name=s.substring(i+1,j);
}
//寻找类别子串,在第三对[]中
i=s.indexOf('[',j);
j=s.indexOf(']', i);
if(j>i&&i>=0){
category=s.substring(i+1,j);
}
//保存有色卡
if(rgb != null && name != null && category != null){
sampleList.add(new ColorSample(rgb,name,category));
}
}
}//end of for
//获取设备像素密度,以便将逻辑像素dp转换成px物理像素
final float scale=getResources().getDisplayMetrics().density;
//清空sampleTable中的原有色卡控件
TableLayout sampleTable=(TableLayout) sampleTabView.findViewById(R.id.sampleTable);
sampleTable.removeAllViews();
//动态添加色卡,,每一个色卡的属性与布局设计相一致
for(final ColorSample samp:sampleList){
//每一行上端有20dip留空(android:paddingTop="20dip")
TableRow row=new TableRow(this);
row.setPadding(0,(int)(20*scale+0.5f),0,0);
//第0列(android:layout_height="80dip")
View col00=new View(this);
col00.setBackgroundColor(samp.val);
col00.setMinimumHeight((int)(80*scale+0.5f));
//第1列(android:gravity="center" android:Layout_height="80dip")
TextView col01=new TextView(this);
col01.setText(samp.name);
col01.setGravity(Gravity.CENTER);
col01.setHeight((int)(80*scale+0.5f));
//将col00和col01加入TableRow组件
row.addView(col00);
row.addView(col01);
//将TableRow放进TableLayout布局
sampleTable.addView(row);
}
//添加事件
//分别为三个tab添加单击事件,被单击代表该选项卡被选中
sampleTab.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
setTabChecked(sampleTab);
//清除content中的界面内容,加载当前被选中选项卡对应的界面
content.removeAllViews();
content.addView(sampleTabView);
//加载资源文件定义的动画效果
Animation animation=AnimationUtils.loadAnimation(ColorCardActivity.this,R.anim.myanim);
}
});
searchTab.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
setTabChecked(searchTab);
content.removeAllViews();
content.addView(searchTabView);
}
});
identifyTab.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
setTabChecked(searchTab);
content.removeAllViews();
content.addView(identifyTabView);
}
});
}
public void setTabChecked(LinearLayout tab) {
// TODO Auto-generated method stub
for(int i=0;i<3;i++){
// 去除背景
tabs[i].setBackgroundDrawable(null);
TextView txt=(TextView) tabs[i].getChildAt(0);
//将字体颜色设置成深绿色
txt.setTextColor(getResources().getColor(R.color.green));
}
tab.setBackgroundResource(R.drawable.tabselected);
TextView txt=(TextView)sampleTab.getChildAt(0);
txt.setTextColor(getResources().getColor(R.color.white));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.color_card, menu);
return true;
}
}
package com.example.colorcard;
import android.graphics.Color;
public class ColorSample {
public final String rgb;//颜色RGB串(格式:#FF00FF)
public final String name;//颜色名
public final String category;//所属类别
public final int val;//RGB颜色对应的整数值
public ColorSample(String rgb,String name,String category){
this.rgb=rgb;
this.name=name;
this.category=category;
//转换颜色RGB字符串为整数表示
val =Color.parseColor(rgb);
}
}